Frank: (RGB) Farbberechnungen/Farbverlauf

Hallo liebes Forum,

kann mir jemand erklären, wie man (in RGB) Farbverläufe berechnet?
Viele Grafikprogramme haben ja eine Funktion, einen Verlauf zwischen zwei Farben darzustellen, d.h. ich gebe im Prinzip zwei Farben an und alle Werte dazwischen werden automatisch erzeugt.
Aber wie geht das?

Mal als Beispiel:

Start: 000000
Ziel:  FFFFFF

Nun kann ich ja nicht die Trippel einfach durch Schleifen durchlaufen lassen, denn das würde, wenn ich das richtig sehe, Sprünge erzeugen, oder?

Mein Ansinnen wäre im Endeffekt, daß ich Werte darstelle, also von 0 bis 100% wobei 100% z.B. grün ist, ein Wert nahe 0% rot.
Gibt es einen Algorithmus das in RGB direkt umzurechnen?

Vielen Dank für jeden Hinweis!

Gruß
Frank

  1. Hi Frank,

    Der Verlauf
    von Farbe0: rgb(r0,g0,b0)
    zu  Farbe1: rgb(r1,g1,b1)
    über (n-1) Zwischenfarben
    müsste so gehen:

    dr=r1-r0; sr=dr/n;
    dg=g1-g0; sg=dg/n;
    db=b1-b0; sb=db/n;

    ri=r0;
    gi=g0;
    bi=b0;

    for(i=0; i<=n; i++) {
      ri+=sr;
      gi+=sg;
      bi+=sb; // Damit hast du die i-te Zwischenfarbe rgb(ri,gi,bi)
    }

    Soll natürlich kein richtiges Programm sein, sondern das Prinzip erläutern. (Deshalb keine Konvertierung in Ganzzahlen hier.) Nach Durchlaufen der Schleife ist dann
    ri=r1;
    gi=g1;
    bi=b1;

    Gunnar

    --
    Die Menschen sollten endlich lernen, andere Kulturen objektiv zu betrachten, damit sie wissen, wann sie sich einmischen sollten und wann nicht.
    (T'Pol in Enterprise: "Aufbruch ins Unbekannte")
    1. Nach Durchlaufen der Schleife ist dann
      ri=r1;
      gi=g1;
      bi=b1;

      Dazu muss die Schleife aber natürlich bei 1 losgehen:
      for(i=1; i<=n; i++)

      Sorry, Macht der Gewohnheit.
      Gunnar

      --
      Die Menschen sollten endlich lernen, andere Kulturen objektiv zu betrachten, damit sie wissen, wann sie sich einmischen sollten und wann nicht.
      (T'Pol in Enterprise: "Aufbruch ins Unbekannte")
      1. Hatte glatt vergessen zu erwähnen, dass ich mir wünschte, dass man seine Postings canceln kann. :-)
        Gunnar

        --
        Die Menschen sollten endlich lernen, andere Kulturen objektiv zu betrachten, damit sie wissen, wann sie sich einmischen sollten und wann nicht.
        (T'Pol in Enterprise: "Aufbruch ins Unbekannte")
        1. Hi Gunnar

          Hatte glatt vergessen zu erwähnen, dass ich mir wünschte, dass man seine Postings canceln kann. :-)

          Fängst du jetzt auch schon damit an? ;-)

          Schöne Grüße

          Johannes

          --
          ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
          Selfcode bei http://emmanuel.dammerer.at/selfcode.html
  2. Hi,

    schau mal hier:
    http://peterk.de.ms/dl/?name=Fade
    Mir hats auch geholfen

    Christoph