CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
24.10.2016, 16:29:02
|
Junior Member
|
|
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
|
|
gute Zufallsfarben
Hallo,
ich möchte eine Grafik generieren. Einfach eine Kreisdiagramm mit den Kosten der jeweiligen Abteilung. Die Anzahl de abteilungen kann schwanken. Also mal 5, mal 20 und mal 18 Abteilungen.
Ich kann natürlich einfach rand(0,255) nehmen. Nur dann kann es passieren, dass ich 3 Rottöne habe und 12 Blautöne, was nicht schön aussieht.
Ich bräuchte also etwas mit genügend Abstand.
Ich habe einen Ansatz:
PHP-Code:
<?php $rgb_array=array(0,0,0);
$zeiger=3;
$anzahl_abteilungen=12;
$quotient=round(256/(3*$anzahl_abteilungen));
//********Quotient=7
for($x=0;$x<256;$x=$x+$quotient)
{
$pos=$zeiger%3;
//*******Pos:0
$zeiger++;
//*********Zeiger=4
echo "Position: ".$pos." - Wert. ".$rgb_array[$pos]."<br>";
//*********** Wert an Pos 0
$rgb_array[$pos]= $rgb_array[$pos]+$quotient;
//************** Wert an Pos 0=7
}
//**********Kreisdiagramm******************
....
?>
Nur dann habe ich
0,0,0,
7,7,7
14,14,14...
Was ich vom Gefühl her bräuchte:
0,0,0
7,0,0
0,7,0
0,0,7
Als Test habe ich 12 Abteilungen, 256/12 =21 /3 Farben =7 als Quotient. Rot oder Grüntöne können natürlich mehrere sein und müssen bei entsprechender Anzahl auch sein (max 50 würde ich sagen), aber halt nicht nebeneinander. Soll ja kein Farbverlauf werden.
Sonst passiert sowas:
http://screencast.com/t/hv5B4DwfZ0K
Und sowas wäre gut:
http://screencast.com/t/FwEmxpryt6
|
25.10.2016, 14:01:26
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: gute Zufallsfarben
Habe zwar nicht die einzig wahre Lösung, würde jedoch - wenn es um eine begrenzte Anzahl von Farben geht - mir die Mühe machen, neben den Grundfarben (Rot, Grün, Blau, Cyan, Magenta, Gelb, Weiß und Schwarz) noch eine beliebige Anzahl von selbst gewählten Farben als Strings in ein Array schreiben (zb. $color = array("0,0,0", ..., Wunschfarben, ... "255,255,255")) und bei Bedarf die benötige Anzahl von Elementen abfragen.
Vorteil: Du kannst die Farben nach Deinen Vorstellungen auswählen und auch sortieren.
Oder Du schaust Dir mal die einschlägigen Bibliotheken, die Diagramme mittels PHP zeichnen (können), an.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
25.10.2016, 14:21:48
|
Junior Member
|
|
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
|
|
AW: gute Zufallsfarben
Vielen Dank!
Das habe ich auch schon gedacht. Allerdings habe ich dasselbe Problem, oder?
Angenommen, ich nehme 150 Farben als Array.
Dann brauche ich 12. Entweder hole ich mir 12 zufällige raus oder die ersten 12.
Was ich suche oder mir vorschwebt ist sowas wie.
$altefarbe=irgendeinehexzahl;
$neuefarbe=$irgendeinehexzahl
wenn $neuefarbe-$altefarbe <= 45 (Abstzamd) wähle andere farbe, sonst mache nichts.
Das also zwischen den Zahlen genug Abstand ist.
Oder OK, festlegen. Mehr als 100 werden es nie. Nur dann muss ich die Farben händisch im String/Array sortieren. Sonst habe ich uU zb 0,0,255 neben 5,10,245 und das sieht kein Mensch als Unterschied. Oder sowas wie Komplementärdarben. So dass man quasi 2 Arrays hat und dann immer wechselt...
|
25.10.2016, 17:26:08
|
Junior Member
|
|
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
|
|
AW: gute Zufallsfarben
Ich habe nun eine Funktion gefunden:
PHP-Code:
function hex2rgb($hex) {
$hex = str_replace("#", "", $hex);
if(strlen($hex) == 3) {
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
} else {
$r = hexdec(substr($hex,0,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
}
$rgb = array($r, $g, $b);
//return implode(",", $rgb); // returns the rgb values separated by commas
return $rgb; // returns an array with the rgb values
}
Aber nun habe ich ein Array mit RGB Werten. Implode macht mir daraus einen String. Ich brauche das auber doch als dezimal werte...
|
26.10.2016, 11:54:31
|
Junior Member
|
|
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
|
|
AW: gute Zufallsfarben
Ok, habs mit ner Krücke gelöst. 30 Farbzahlen manuell in ein Array geschrieben und dabei auf die Reihenfolge geachtet.
Eigendlich suhe ich noch was eleganteres. Startfarbe, was weiß ich fffff und Komplemenärfarbe +30/50/56
Das als neue farbe usw.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:12:57 Uhr.
|