Carl: Farbe aus Prozentangabe zusammensetzen

Hi

Ich versuche mich gerade an einer kleinen, dynamisch erzeugten Schematischen Darstellung. Die Darstellung an sich ist kein Problem, nur die Farbe. Diese soll aufgrund einer Angabe in der Datenbank variieren, wobei diese Angabe eine Prozentzahl zwischen 0 und 100 sein soll.
Abhängig von dieser Angabe soll nun die Farbe der  Darstellung zwischen Grün (100) und Rot (0) variieren.
Um das zu erreichen habe ich versucht mit Hilfe von CSS und background-color: rgb(x,y,z); die richtige Farbe zu erzeugen.
Mein Problem ist nun, dass Mathe nun wirklich noch nie meine starke Seite war ;) und ich es einfach nicht hinbekomme, dass x und y sich im richtigen Maße verändern (blau wird ja nicht benötigt).

Hat jemand für mich ein paar Ansätze, wie ich aus der Prozentangabe die Werte von x und y berechnen kann?

Gruss
Carl

  1. Hallo,

    Hat jemand für mich ein paar Ansätze, wie ich aus der Prozentangabe die Werte von x und y berechnen kann?

    Wenn du eine Prozentangabe hast und du die Farbe so definierst:
    background-color:rgb(x,y,0);
    dann musst du nur noch ausrechnen, wieviel der Prozentwert z.B. für Rot an 255 ausmacht: p * 255 = x

    Zum Beispiel bei 20% Rotanteil: 0,20 * 255 = 51
    Ergo: background-color:rgb(51,204,0); der y-Wert lässt sich ja durch einfache Differenz bilden.

    Und den obigen Rechenschritt kannst du ja z.B. mit PHP bewältigen (du schreibst ja, dass du die Seiten dynamisch sind).

    Gruß
    Lachgas

    1. Hi

      danke, hat mir weitergeholfen, auch wenn es (aufgrund meiner mangelhaften Beschreibung) noch etwas abgewandelt werden musste, da ich nur Abstufungen zwischen Rot, Gelb und Grün haben wollte, was sich allerdings mit Hilfe einiger if-clauses lösen ließ.

      Gruß
      Carl

    2. Hallo,

      Zum Beispiel bei 20% Rotanteil: 0,20 * 255 = 51
      Ergo: background-color:rgb(51,204,0); der y-Wert lässt sich ja durch einfache Differenz bilden.

      rgb(20%,80%,0%) bietet sich an.

      MfG, Thomas

      1. Hallo,

        rgb(20%,80%,0%) bietet sich an.

        Sei nicht so kompliziert! ;-)

        Hatte ich schlicht und einfach übersehen, diese Methode. Naja... :-/

        Gruß
        Lachgas