PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Farbverlauf


Lord Nikon
2003-09-17, 15:39:31
Hi ,
hier erstmal mein bisheriger Code

TColor color;


for (double x=0.0;x<PaintBox1->Width;x=x+0.1)
{


PaintBox1->Canvas->Pen->Color=clRed;

PaintBox1->Canvas->MoveTo(x,0);
PaintBox1->Canvas->LineTo(x,PaintBox1->Height);
}

Wie kann ich einen Farbeverlaufen darstellen, der alle Farben erfasst und nicht nur die Farbe rot?

Xmas
2003-09-17, 16:11:15
Was meinst du mit "alle Farben"? Einen Regenbogen-Farbverlauf oder linear zwischen zwei Farben zu interpolieren? Für einen Regenbogenverlauf verwendest du am besten das HSB-Farbmodell (weil da Hue der Winkel im Farbkreis ist) und rechnest das in RGB um.

http://www-lehre.informatik.uni-osnabrueck.de/~cg/2000/skript/9_8_HSV_Modell.html

Lord Nikon
2003-09-17, 16:18:38
mit allen Farben meinte ich ein Farbspektrum von Weiß nach Schwarz , so dass in der PaintBox weiß am Anfang und schwarz am Ende der PaintBox ist.

Xmas
2003-09-17, 18:24:27
Original geschrieben von Lord Nikon
mit allen Farben meinte ich ein Farbspektrum von Weiß nach Schwarz , so dass in der PaintBox weiß am Anfang und schwarz am Ende der PaintBox ist.
Also ich kenne nur ein Farbspektrum von Infrarot nach Ultraviolett ;)
Meinst du jetzt Weiß - Grau - Schwarz oder Weiß - Bunt - Schwarz, und wenn letzteres, in welcher Farbabfolge?

Wie gesagt, einen Regenbogenverlauf kannst du leicht im HSB (auch HSV genannt)-Farbmodell erzeugen, wie du allerdings Weiß und Schwarz reinbringen willst, da bin ich mir nicht sicher. Machen kannst du das aber, indem du Saturation von 0 nach 1 und gleichzeitig Brightness von 1 nach 0 interpolierst. Dann fängst du Weiß an und hörst Schwarz auf, hast aber nie eine "knallige" Farbe drin.

Ach ja, wieso benutzt du eigentlich eine Schrittweite von 0.1?

Lord Nikon
2003-09-17, 19:07:03
Weiß - Bunt - Schwarz so hatte ich mir das eigentlich vorgestellt, wobei mir die Farbabfolge egal ist.

Die Schrittweite war willkürlich zu Testzwecken gewählt. Wir haben in der Schule gerade mit Canvas angefangen und deshalb will ich mich in das Thema einarbeiten.