Dynamische Farberzeugung

Hallo,
ich möchte eine Tabelle mit ca. 30 's mit Hintergrundsfarben versehen. Diese sollen dynamisch (entsprechend nach Anzahl der Zeilen) erstellt werden. Was ich also bräuchte wäre eine Funktion, die ein Array mit Farben erstellt, z.b:

array(’#69D03E’,’#81E52D’,’#DDF026’,’#F0E926’,’#E8BA2C’,’#E86C2C’,’#DA371B’,’#BF4D4E’,’#CD407B’,’#9552BA’,’#7B47C4’,’#5852BA’,’#528DBA’,’#52BAB7’,’#67A3A2’,’#57B288’,’#7B8F8E’,’#6E7974’);

Ich würde dann also eine Zahl übergeben, z.B. 20 und erhalte 20 Farben im gleichen durch das ganze Farbspektrum.
Hat jemand eine Idee für diese schwierige Aufgabe?

Grüße,
Christoph

Ganz einfach. Nimm folgenden Code (hab den mal Kommentiert):

Farbarray..

// Array erzeugen
$col = array('#69D03E','#81E52D','#DDF026','#F0E926','#E8BA2C','#E86C2C','#DA371B','#BF4D4E','#CD407B','#9552BA','#7B47C4','#5852BA','#528DBA','#52BAB7','#67A3A2','#57B288','#7B8F8E','#6E7974');

// Anzahl der Elemente des Arrays zählen
$j = count($col);

// Zählervariable initialisieren
$i = 0;

// Tabelle starten
echo "

";

// While-Schleife: Inhalt wird wiederholt, solange $i kleiner/gleich $j ist.
while ($i -Elemente. $col ist das Array und [$i] der dynamisch generierte Index
echo „Text…\n“;
// Zähler +1
$i++;
// Schleifenende
}

// Tabellenende
echo „“;
?>

Am Ende hast du dann folgendes Ergebnis:
http://www.stufen-forum.de/content/color.php

LG,
Max

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

> // Array erzeugen  
> $col =  
> array('#69D03E','#81E52D','#DDF026','#F0E926','#E8BA2C','#E86C2C','#DA371B',  
> '#BF4D4E','#CD407B','#9552BA','#7B47C4','#5852BA','#528DBA','#52BAB7',  
> '#67A3A2','#57B288','#7B8F8E','#6E7974');  
>   
> // Anzahl der Elemente des Arrays zählen  
> $j = count($col);

Wenn ich das richtig verstehe, dann soll eben dieses Array aufgrund
der Anzahl der Elemente von PHP erzeugt werden. Also etwas wie
array = farbspektrum(int farbanzahl);

Wenn man den Regenbogen entlang geht, beginnt es mit 100% Rot und jeweils 0% Blau und grün. Danach kommen folgende Schritte:

  • Grün steigt auf 100%

  • Rot sinkt auf 0%

  • Blau steigt auf 100%

  • Grün sinkt auf 0%

  • Rot steigt auf 100%

Das Problem ist, dass dieses Steigen und Fallen nicht linear, sondern sinusartig sein sollte, sonst wirkt die Sache etwas abrupt.

Zur Anschauung könnt ihr ja mal den Screenshoot(60kB) und das Video(200kB) zum Farbwürfel betrachten: http://www.j-matschke.de/verzeichnis/

Johannes Matschke

So, ich habe mal ein bischen Code zusammengebastelt. Die Farbkurfen sind zwar linear und nicht sinusartig, aber es funktioniert ganz gut.

http://www.j-matschke.de/verzeichnis/

<?php function rainbow($anzahl) {<br /> $abstand=1280/($anzahl-1);
 $farben=array();
 for ($i=0; $i $farb=round($i\*$abstand);
 if (($farb\>=0) and ($farb=256) and ($farb=512) and ($farb=768) and ($farb=1024) and ($farb
 '.$color; ?\> 

<?php }<br />?\>