Thread Farbverlauf
(19 answers)
Opened by bianca at 2010-02-12 13:59
Hab mir doch schnell selbst was gebaut, das genau paßt.
Falls es jemand mal braucht, so sieht es aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 sub farbverlauf { # # Logik: # ====== # 1. Mitte von 128 bis 255, also FF8080 bis FFFF80 = Rot -> Gelb # 2. Links von 255 runter bis 128, also FFFF80 bis 80FF80 = Gelb -> Grün # 3. Rechts von 128 hoch bis 255, also 80FF80 bis 80FFFF = Grün -> Blau # Ergibt 384 Farben in der gleichen Helligkeit # my $anzahl = shift; my @arr; if ($anzahl > 1) { $anzahl = 385 if $anzahl > 385; # Minimale Schrittweite darf 1 sein my $schritt = int (384 / ($anzahl - 1)); # Schrittweite anhand Anzahl Werte for (my $z = 0; $z < $anzahl - 1; $z ++) { my @rgb = (255,128,128); # Startfarbe fest Rot $rgb[1] = int (128 + ($z * $schritt)); if ($rgb[1] > 255) { # Überlauf Mitte nach links schieben $rgb[0] -= $rgb[1] - 255; $rgb[1] = 255; } if ($rgb[0] < 128) { # Überlauf Links nach rechts schieben $rgb[2] += 128 - $rgb[0]; $rgb[0] = 128; } push @arr,sprintf ('#%02X%02X%02X',@rgb); } } push @arr,'#80FFFF'; # Letzte Farbe soll immer fest Blau sein wg. Rundungsdifferenzen bei Schrittweite return @arr; } Trotzdem Dank an esskar, aber das paßte bei mir nicht so ganz rein, blau fehlte auch. Edit: Zeile 13 eingefügt und Kommentare rangezogen. Last edited: 2010-02-12 17:46:17 +0100 (CET) 10 print "Hallo"
20 goto 10 |