Thread Farbverlauf (19 answers)
Opened by bianca at 2010-02-12 13:59

bianca
 2010-02-12 15:43
#132793 #132793
User since
2009-09-13
6991 Artikel
BenutzerIn

user image
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

View full thread Farbverlauf