Direkt zum Rechner:
Wie man das Applet bedient
- Auswahl der Farben und der Farbzahl
Oben in dem Applet befinden sich zwei Quadrate, eines repräsentiert die Start, das Andere die Zielfarbe. Klickt man auf Eines, so öffnet sich ein Farbauswahldialog. In Diesem kann man dann eine Farbe aus einer Standardpalette auswählen, oder man kann frei RGB- oder HSV-Werte eingeben. Bestätigt man dann den Dialog mit "OK", so ändert sich die Farbe des Quadrates zu der eben Ausgewählten.
In dem Feld rechts daneben kann man angeben, wie viele Farben der gewünschte Verlauf haben soll. Die Start-und die Zielfarbe zählen hierbei mit, die minimale (sehr unspektakuläre) Anzahl ist also 2.
- Verlauf berechnen
Hat man die Auswahl, wie oben beschrieben, getätigt, so klicke man auf "OK". Nun erscheinen die folgenden Farbverläufe:
- HSV im Uhrzeigersinn
- HSV gegen den Uhrzeigersinn
- HSV linear
- RGB linear
- CMYK linear
- XYZ linear
- CIELab linear
- HunterLab linear
(Zur näheren Beschreibung der einzelnen Verläufe siehe: "Wie arbeitet das Applet?")
- Verlauf auswerten
Nun kann man sich den schönsten Farbverlauf aussuchen, und klickt Diesen an. Es öffnet sich ein Fenster, mit einer tabellarischen Darstellung der Farben.
In der ersten Zeile kann man die Farben sehen,
in der Zweiten stehen die RGB-Werte im Format: (R,G,B) (R, G und B sind hierbei ganzzahlige Zahlen von 0-255),
in der Dritten stehen die HSV-Werte im Format: (H,S,V) (H ist eine Gradzahl von 0°-359°, S und V sind Prozentzahlen von 0% bis 100%) und
in der Vierten steht die Farbe in hexadezimaler HTML-Notation (etwa #ffcc00 für orange).
Wie arbeitet das Applet?
- Linearer RGB-Verlauf
Das RGB-Farbmodell ist ein Farbmodell, indem jede Farbe aus einem Rot-, einem Grün- und einem Blau-Anteil zusammengesetzt wird. Dieses bildet einen dreidimensionalen Würfel, in dem man einfach eine Gerade konstruieren kann, und diese dann stückweise abgeht. Eine vorherige Konvertierung ist nicht nötig, da Java intern im RGB-Modell arbeitet.
float Rdiv=(Ziel.getRed()-Start.getRed())/((float)Anzahl-1);
float Gdiv=(Ziel.getGreen()-Start.getGreen())/((float)Anzahl-1);
float Bdiv=(Ziel.getBlue()-Start.getBlue())/((float)Anzahl-1);
for (int i=0;i<Anzahl;i++)
{
Farben[i]=new Color(((int)(Start.getRed()+i*Rdiv)),((int)( Start.getGreen()+i*Gdiv)),((int) (Start.getBlue()+i*Bdiv)));
}
Linearer Farbverlauf in anderen Farbräumen
Es gibt noch jede Menge anderer Farbräume, mit denen man Farben darstellen kann. Konvertiere ich eine Farbe in ein solches Modell, berechne da einen linearen Verlauf und konvertiere das Ergebnis zurück, so bekomme ich einen anderen, in RGB nicht mehr linearen, Verlauf. Zur Konvertierung hin und zurück gibt es die Seite: http://www.easyrgb.com/math.php. Dieses Verfahren verwende ich in den Farbräumen:
Farbverläufe im HSV-Raum
Der HSV-Raum ist ein sehr schöner Farbraum, in dem man eine Farbe durch einen Farbwinkel, eine Sättigung und eine Helligkeit bestimmt. (Nähere Erläuterungen zum HSV werde ich hier nicht machen, wer diese Absatz verstehen will, sollte den Wikipedia-Artikel lesen).
- Linearer Verlauf
Auch im HSV habe ich einen linearen Verlauf implementiert, dies ist etwas komplizierter, da ich die Winkel und Prozentwerte erst in räumliche Koordinaten, und danach wieder zurück, umwandeln muss. Ich habe mich hierbei für die Interpretation des HSV als Zylinder entschieden, da die Ergebnisse ansprechender waren als im Kegel.
- Spirale im Uhrzeigersinn
Unterscheiden sich zwei Farben nur durch ihren Farbwinkel, so kann man den Kreis abgehen, auf dem diese Beiden Farben liegen. Unterscheiden sich auch die Helligkeit, und die Sättigung, so erhält man eine Spirale in dem HSV-Kegel. Diese Art des Übergangs hat den Vorteil, dass beim Verlauf ähnlich gesättigter Farben keine grauen Farben auftauchen. Ist die Sättigung aber 0, so tauchen im Verlauf auch unerwartete Farben auf.
- Spirale gegen den Uhrzeigersinn
Man kann eine ähnliche Spirale wie oben beschrieben auch in der anderen Richtung beschreiten. Liegen die beiden Farben relativ eng beieinander, so ist nur einer der beiden Verläufe, der kürzere, sinnvoll, liegen die beiden Farben weit auseinander, so ist es Geschmackssache welchen man bevorzugt. (der obere läuft eher durch die Kühleren, der untere eher durch die wärmeren Farben.
Download und Mitarbeit
Man kann die Applikation auch runter laden, und frei benutzen. Dazu diesen Link anklicken: "Das Jar Archiv mit den Klassen und den Sourcen". Die Applikation kann man dann auch offline starten:
java -jar Farbverlauf.jar
In dem Archiv sind auch die Quellen enthalten, die sich jeder ansehen und verändern darf. Falls jemand das Bedürfnis hat, etwas zu ändern so schreibe er mir bitte, ich möchte gerne weiter wissen, wie das Programm sich entwickelt.
Kontakt und Anregungen
Hier kann man mir eine Mail schreiben. (Im Mailprogramm bitte das .nospam löschen) Ich würde mich über Anregungen zum Programm freuen, oder wenn jemand von sich aus das Programm verbessert.