Alexander Brock: Algorithmus für n unterschiedliche Farben

Beitrag lesen

Hallo Freunde des gehobenen Forumsgenusses,

Ich suche einen Algorithmus, der mir n unterschiedliche Farben aus dem RGB-Farbraum liefert, die sich möglichst gut voneinander abheben (und nicht weiß sind, weiß ist schon der Hintergrund).

Nachdem ich auf "Neue Nachricht" geklickt hatte und einen Text schreiben wollte habe ich noch einmal ein bisschen überlegt und experimentiert und folgende Lösung gefunden (PHP):

  
function get_colors($number) {  
 $root = pow($number, 1/3);  
 #echo '<br />'.$root;  
 if (ceil($root)*pow(floor($root), 2) >= $number) {  
  $n1 = ceil($root);  
  $n2 = $n3 = floor($root);  
 }  
 elseif (pow(ceil($root), 2)*floor($root) >= $number) {  
  $n1 = $n2 = ceil($root);  
  $n3 = floor($root);  
 }  
 else  
  $n1 = $n2 = $n3 = ceil($root);  
  
 $counter = 0;  
 $result = array();  
 for ($i1 = 0; $i1 <= $n1; $i1++) {  
  for ($i2 = 0; $i2 <= $n2; $i2++) {  
   for ($i3 = 0; $i3 <= $n3; $i3++) {  
    if ($counter >= $number)  
  return $res;  
 $res[] = array('r' => $i1*floor(255/$n1), 'g' => $i2*floor(255/$n2), 'b' => $i3*floor(255/$n3));  
 $counter++;  
   }  
  }  
 }  
 #echo '<br />'.$n1.'<br />'.$n2.'<br />'.$n3;  
}  

Ausprobieren kann man das hier: http://alexanderbrock.de/temp/get_colors.php

Ich bin mit dieser Lösung allerdings nicht sonderlich glücklich,
kennt vielleicht jemand eine bessere oder sieht an meinem Code einen Denkfehler?

Gruß
Alexander Brock