Zitat von
jfheins:
http://de.wikipedia.org/wiki/
HSV-Farbraum#Umrechnung_HSV_in_RGB
Mit S = V = 1 und H = alpha
=> p=0; q=1-f; t=f
Grundsätzlich gerne, aber die Anordnung ist mir wichtig; also:
Delphi-Quellcode:
function TColorRing.getColor(X, Y: integer): TColor;
var
Angle:integer;
R,
G,
B:Byte;
begin
Angle:=Self.getAngle(X, Y);
if(Angle
in [0..119])
then
begin
R:=255;
G:=trunc(255*Angle/119);
B:=0;
end
else if(Angle
in [120..239])
then
begin
dec(Angle, 120);
if(Angle
in [0..59])
then
begin
R:=trunc(255*(59 - Angle)/59);
B:=0;
end else
begin
R:=0;
B:=trunc(255*(Angle-60)/59);
end;
G:=trunc(255*(119 - Angle)/119);
end
else
begin
dec(Angle, 240);
R:=trunc(255*Angle/119);
G:=0;
B:=trunc(255*(119 - Angle)/119);
end;
Result:=
RGB(R, G, B);
end;
Zitat von
Sherlock:
Abschließend und leicht
OT würde ich gerne festhalten, daß dieses Thema
IMHO nicht die lineare Algebra betrifft, sondern die Trigonometrie
Sherlock
Anfangs war es aber als LA formuliert
Aber sonst hast du Recht!