Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
FreePascal / Lazarus
|
Re: Farbwerte zwischen Schwarz und Weiß berechnen?
2. Jan 2009, 00:41
Delphi-Quellcode:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
value1, value2, value: double;
c: byte;
w,h: integer;
begin
w := panel1.width;
h := panel1.height;
// (x-w/2)/w) = x/w - 0.5
value1 := max(abs(x/w-0.5), abs(y/h-0.5))*2;
value2 := {1-sqrt(sqr(x-w/2)+sqr(y-h/2))/sqrt(sqr(w/2)+sqr(h/2))}
abs(x/w-0.5)*abs(y/h-0.5)*2;
value := {max(value1,value2)}max(max((value1+value2)/2,value1),value2);
c := round(255-value*255);
panel1.color := rgb(c,c,c);
end;
Experimentell... relativ gutes Ergebnis (im vergleich zu meinen anderen versuchen). Kannst ja noch etwas dran herumspielen. Wie schon gesagt, eine perfekte Lösung kann es nicht geben.
|
|
Zitat
|