Peter M.: farben erzeugen

Moin!

Ich bin dabei eine Karte zu erstellen und möchte dynamisch farben mit php erzeugen. Die Anzahl der Farben soll auch variabel sein.

Wenn als z.b. vier farben erzeugt werden sollen wäre ein gutes ergbniss rot, gelb, blau und grün.

Ich weiß aber nicht wie ich das mit php dynamisch lösen kann. Natürlich weiß ich dass sich eine farbe aus den RGB werten zusammensetzt. Ich muss also nur drei zahlen erzeugen.
Aber wie ist es möglich das so hinzubekommen das wenn wenige farben gewählt werden nur kräftige farben erzeugt werden und wenn viele farben erzeugt werden auch farbtöne dazwischen erzeugt werden?

Ich habe leiderbisher keinen Ansatz. Kann mir jemand helfen? Code muss nciht unbedingt sein ein Ansatz wäre schon sehr gut :)

mfg, Peter

  1. Hi,

    Ich bin dabei eine Karte zu erstellen und möchte dynamisch farben mit php erzeugen.

    vier Farben reichen aus, um auf Landkarten niemals zwei gleichfarbige Bereiche aneinandergrenzen zu lassen.

    Ich habe leiderbisher keinen Ansatz.

    Gehe systematisch vor. Ein möglicher Algorithmus könnte etwa der folgende sein: Vergib die Rot-, Grün- und Blau-Anteile zunächst entweder jeweils vollständig oder gar nicht, nutze dabei die Kombinatorik. Ergänze dies anschließend um 50%-Werte, dann um 75% und 25% usw.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Ich bin dabei eine Karte zu erstellen und möchte dynamisch farben mit php erzeugen.

      vier Farben reichen aus, um auf Landkarten niemals zwei gleichfarbige Bereiche aneinandergrenzen zu lassen.

      ich brauche aber eine legende. und da sollten es mehr farben sein ;)

      Gehe systematisch vor. Ein möglicher Algorithmus könnte etwa der folgende sein: Vergib die Rot-, Grün- und Blau-Anteile zunächst entweder jeweils vollständig oder gar nicht, nutze dabei die Kombinatorik. Ergänze dies anschließend um 50%-Werte, dann um 75% und 25% usw.

      das mit der steigerung um % werte ist schon mal eine gute idee. aber was meinst du mit Kombinatorik?

      Danke schonmal, Peter

      1. Hi,

        aber was meinst du mit Kombinatorik?

        Kombinatorik ist "die Lehre vom Arrangement von (diskreten, z.B. endlichen) Mengen unter Nebenbedingungen", ein Bereich der Mathematik.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Kombinatorik ist "die Lehre vom Arrangement von (diskreten, z.B. endlichen) Mengen unter Nebenbedingungen", ein Bereich der Mathematik.

          aso. und kannst du mir erklären was das auf mein problem bezogen bedeutet? ich habe leider noch keine ahnung von Kombinatorik :(

          mfg, Peter

          1. Hi,

            aso. und kannst du mir erklären was das auf mein problem bezogen bedeutet?

            Du musst alle Möglichkeiten für den Rot-, den Grün- und den Blau-Wert miteinander kombinieren.

            ich habe leider noch keine ahnung von Kombinatorik :(

            Tja, die Informatik ist zum allergrößten Teil Mathematik ... :-)

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Du musst alle Möglichkeiten für den Rot-, den Grün- und den Blau-Wert miteinander kombinieren.

              jap schon klar ;)

              Tja, die Informatik ist zum allergrößten Teil Mathematik ... :-)

              ich weiß. ich habe auch mathe und informatik LK ;)

  2. hallö,

    Aber wie ist es möglich das so hinzubekommen das wenn wenige farben gewählt werden nur kräftige farben erzeugt werden und wenn viele farben erzeugt werden auch farbtöne dazwischen erzeugt werden?

    um das problem zu verstehen, würde ich gern wissen, wovon die farbanzahl/-tiefe abhängig sein soll und ob sie in bestimmten stufen (woher kommt 4?) gewählt wird.

    grüße aus Leipzig
    willie

    --
    ss:| zu:} ls:# fo:| de:] va:} ch:? sh:( n4:( rl:° br:> js:| ie:% fl:( mo:}
    http://emmanuel.dammerer.at/selfcode.html
    1. Aber wie ist es möglich das so hinzubekommen das wenn wenige farben gewählt werden nur kräftige farben erzeugt werden und wenn viele farben erzeugt werden auch farbtöne dazwischen erzeugt werden?
      um das problem zu verstehen, würde ich gern wissen, wovon die farbanzahl/-tiefe abhängig sein soll und ob sie in bestimmten stufen (woher kommt 4?) gewählt wird.

      die farbzahl ist beliebig. Sie reicht von 1 bis ca 50.

      mfg, Peter M.

      1. hallö nochmal,

        die farbzahl ist beliebig. Sie reicht von 1 bis ca 50.

        mein problemverständnis geht immer noch gegen null (wobei sich aus den zur verfügung gestellten informationen durchaus einige kombinationen ergeben ;)

        eine idee: du willst abhängig von einer benutzereingabe farben anzeigen. das klingt dann nach ner simplen dezimalen berechnung nach disem schema (CSS): 'color:rgb(0,128,64);'. dabei kannst du die farbstufen in 64-er schritten (max. 64 farben) wählen, um gut sichtbare abgrenzungen zu bekommen.

        grüße aus Leipzig
        willie

        --
        ss:| zu:} ls:# fo:| de:] va:} ch:? sh:( n4:( rl:° br:> js:| ie:% fl:( mo:}
        http://emmanuel.dammerer.at/selfcode.html
        1. die farbzahl ist beliebig. Sie reicht von 1 bis ca 50.
          mein problemverständnis geht immer noch gegen null (wobei sich aus den zur verfügung gestellten informationen durchaus einige kombinationen ergeben ;)

          also ich möchte eine variable anzahl von farben erstellen die sich gut voneinader abheben. die zahl hängt vom benutzer ab und reicht von 1 bis 50. mehr kann ich dazu nicht sagen ;)

          wie schaff ich es dann bei z.b. 6 farben 6 sehr unterschiedliche zu erzeugen?

          1. hallö,

            wie schaff ich es dann bei z.b. 6 farben 6 sehr unterschiedliche zu erzeugen?

            also noch mal zur kombinatorik: die farbtiefe von 256 farbabstufungen für rot, grün und blau lässt 256*256*256=16777216 farben zu, die (für mich) oft sehr schwer zu unterscheiden sind. eine beschränkung auf 2*2*2=8 farben aus den farbwerten 0 und 128 ist hingegen sehr eindeutig. eine zufällige auswahl kannst du per gmp_random() treffen.

            mein vorschlag wäre bei diesem geringen umfang, mich einfach auf sechs der grundfarben zu beschränken, dann kannst du sogar die erlaubten farbwörter benutzen: http://de.selfhtml.org/diverses/anzeige/farbnamen_16.htm.

            grüße aus Leipzig
            willie

            --
            ss:| zu:} ls:# fo:| de:] va:} ch:? sh:( n4:( rl:° br:> js:| ie:% fl:( mo:}
            http://emmanuel.dammerer.at/selfcode.html
  3. Hallo Peter,

    Ich hab das immer so gemacht, dass ich mit CSS und der Angabe [...]color=rgb($rot, $gelb, $blau) sowie dem PHP-Befehl rand(0,255); diese einzelnen Farben erzeugt habe. Du kannst diese Werte dann ja noch ebenfalls variabel machen (==> rand($i, $j)) und somit beliebig eingrenzen. Damit könntest du auch deine abstufende Farbsättigung hinbekommen.

    Gruß
    Lachgas