3Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
792
792
EMPFEHLEN
-
Hi,
ich habe folgendes Problem, bei dem auch nicht die FAQ´s oder Google helfen konnte:
es gilt einen Farbverlaufsbalken zu erstellen (von der Farbe grün hin zur Farbe rot, 100px breit, 10 px hoch), der mittels einer zu übergebenen Variablen ($belegung) die noch freien Plätze darstellt in einem Kurs darstellt.
Konkret bedeutet das:
1. Ist die Variable 100, so bedeutet das, dass der Kurs komplett belegt ist und der Farbbalken komplett dargestellt wird mit 100px und bis in den roten Bereich hinein.
2. Ist die Variable z. B. 50, so bedeutet das, dass der Kurs nur zur Hälfte belegt ist und der Fabbalken nur hälftig dargestellt wird mit 50 px, usw..
So soll Symbolisch auf den ersten Blick klar sein, inwieweit ein Kurs gebucht ist. Es soll ein Rahmen (1px) um den Balken in seiner gesamten Größe (100px x 10px) gezogen sein, auch wenn der Balken z. B. nur zur Hälfte oder so dargestellt wird.
So, ich habe folgenden Ansatz für den Farbverlaufsbalken, aber irgendwie schaffe ich nicht den Übergang von einer Farbe zur anderen:
Hat jemand einen Ansatz für mich, wie dies zu realisieren wäre?PHP-Code:function farbverlauf($belegung) {
$verlauf = ImageCreateTrueColor($belegung,10);
for($x=0; $x<$belegung; $x++) {
ImageLine($verlauf, $x, 0, $x, 39, $x<<16);
}
ImagePNG(verlauf);
}
Beste Grüße,
prekoWem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.
Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...
Es gibt zwei Wege im Leben - den schweren und den falschen!
-----------------------------------------------------------------------------------------------------
http://www.prenociste-mir.com
-----------------------------------------------------------------------------------------------------
-
29.02.08 11:48 #2ROXON Tutorials.de Gastzugang
Hier gibt es ein javascript tutorial dazu, ich hoffe es hilft dir weiter.
-
@ ROXON:
danke für den Hiweis, allerdings bin ich, wie im Titel meines Threads aufgeführt, auf PHP als Sprache festgelegt, da ich nicht riskieren kann, dass bei ausgeschaltetem JavaScript dieses Darstellungelement nicht angezeigt wird.
Kommentar:
Außerdem beschränkt sich das Tutorial auf Firefox und Opera, schließt aber den Internet Explorer, sprich ca. 75% oder mehr der Internetnutzer aus! Daher ist es wohl für eine breite Anwendung nicht geeignet.
Beste Grüße,
prekoGeändert von preko (29.02.08 um 12:04 Uhr) Grund: Kommentarergänzung
Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.
Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...
Es gibt zwei Wege im Leben - den schweren und den falschen!
-----------------------------------------------------------------------------------------------------
http://www.prenociste-mir.com
-----------------------------------------------------------------------------------------------------
-
Warum erstellt du die beiden Grafiken nicht in einem Bildbearbeitungsprogramm.
Und dann berechnest du wie breit beide Grafiken sein müssen.
Dann muss die GDLib nichts machen, was sehr viel Serverresourcen spaart. Funktionierne tut es auch wunderbar auf allen systemen. Denn Breitenangaben in den Grafiken gehen ja schon wirklich seit Uhr-zeiten ,) Alternativ kannst du auch Div-Layer auf die Breiten ziehen und ihnen eben ein Hintergrundbild geben.PHP-Code:<?
$max_teilnehmer = 44;
$cur_teilnehmer = 20;
// Breite Rotes Image
$breite_rot = $cur_teilnehmer/$max_teilnehmer * 100;
// Breite Grünes Image
$breite_gruen = 100-($cur_teilnehmer/$max_teilnehmer) * 100;
echo "<img src=\"red.gif\" height=\"10px\" width=\"{$breite_rot}px\" hspace=\"0\" vspace=\"0\" border=\"0\">";
echo "<img src=\"green.gif\" height=\"10px\" width=\"{$breite_gruen}px\" hspace=\"0\" vspace=\"0\" border=\"0\">";
?>
Wenn es generell nur 2 Farben sein sollen, kannst du auch einen Div-layer machen in Grün, mit Rahmen usw. Und dann mit dem Rot auffüllen. Das hier ausgerechnete sind Prozentangaben und dann mit width="{$breite_rot}%" arbeiten. Dann ist es sogar noch variabler was das Design angeht. Wenn du die Dinger dann irgendwann mal 200 Pixel breit haben möchtest.Geändert von Michael Engel (29.02.08 um 12:14 Uhr)
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
-
29.02.08 12:13 #5
Ich habe es mal nicht mit einem Verlauf, sondern einer Füllstandsanzeige gemacht.
Belegung in % (0-100)
Idee von Michael ist auch super.PHP-Code:function farbverlauf($belegung) {
/* Bild erstellen */
$verlauf = ImageCreateTrueColor(100,10);
/* Hintergrund mit Mittelgrün RGB 0,200,0 füllen */
$color = imagecolorallocate($verlauf,0,200,0);
imagefilledrectangle($verlauf,0,0,100,10,$color);
/* Abhängig von $belegung einen roten Balken (200,0,0) rüberzeichnen */
$color = imagecolorallocate($verlauf,200,0,0)
imagefilledrectangle($verlauf,0,0,$belegung,10,$color);
/* Pseudoverlauf -- 2 weitere Linien recht neben den roten Balken zeichnen */
if($belegung<100 and $belegung>0){
$color = imagecolorallocate($verlauf,150,50,0);
imageline($verlauf,$belegung+1,0,$belegung+1,10,$color);
$color = imagecolorallocate($verlauf,50,150,0);
imageline($verlauf,$belegung+2,0,$belegung+2,10,$color);
}
ImagePNG($verlauf);
imagedestroy($verlauf);
}
mfg chmeeGeändert von chmee (29.02.08 um 14:32 Uhr)
Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
29.02.08 12:26 #6ROXON Tutorials.de Gastzugang
Wen de kein js willst bekommst de php.
Ich hoffe der Code ist selbsterklärend, wen nicht dann
einfach fragen.
PHP-Code:<?
$deinevariable ="100";//Von 0 – 100
$h=200; //Hohe des Farbverlaufes in Pixel
//Falls die Höhe auch dynamisch sein soll „ $h=200 “ durch „ $h= 200 / 100 * $deinevariable “ ersetzen
$r = 255 / 100 * $deinevariable;
$g = 255 - $r;
$s = array($r,$g,0);
$e = array(0,255,0);
for ($i = 0; $i<$h; $i++) {
$c1 = max(0,$s[0]-((($e[0]-$s[0])/-$h)*$i));
$c2 = max(0,$s[1]-((($e[1]-$s[1])/-$h)*$i));
$c3 = max(0,$s[2]-((($e[2]-$s[2])/-$h)*$i));
echo "<div style=\"clear:left; font-size:0px; top:".$i."px; left:0px; height:1px; width:50px; border:0px; background-color:rgb(".round($c1,0 ).", ".round($c2, 0).", ".round($c3,0 ).");\"></div>\n";
}
?>
Bitte.Geändert von ROXON (01.03.08 um 09:14 Uhr)
-
@chmee, @ROXON:
Vielen Dank Euch beiden!
@ROXON:
Habe nun die Lösung von chmee ausprobiert, da diese zuerst da war - funktioniert prima.
Werde mich nun Deiner zuwenden um zu sehen, wie die funktioniert und sie mal mit der anderen vergleichen.
Beste Grüße,
prekoWem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.
Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...
Es gibt zwei Wege im Leben - den schweren und den falschen!
-----------------------------------------------------------------------------------------------------
http://www.prenociste-mir.com
-----------------------------------------------------------------------------------------------------
-
29.02.08 14:22 #8
Offtopic:
Wir wollen uns hier verstärkt darum kümmern, dass beantwortete Themen
als Erledigt gekennzeichnet und hilfreiche Tipps bewertet werden.
Also preko, tue Deinen Dienst und hilf unserer Community
Gerne geschehen. mfg chmeeGeändert von chmee (29.02.08 um 14:27 Uhr)
Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
Ähnliche Themen
-
xml mittels xslt aus bestehenden xml erzeugen
Von chris_head im Forum XML TechnologienAntworten: 0Letzter Beitrag: 12.01.10, 12:17 -
mittels C++ Icon auf Desktop erzeugen
Von sand13r im Forum C/C++Antworten: 2Letzter Beitrag: 06.12.07, 11:13 -
Mittels PHP und GD animiertes GIF erzeugen?
Von preko im Forum PHPAntworten: 3Letzter Beitrag: 21.09.07, 14:35 -
Menü mittels Datenbank das sich aufgrund von bestimmten Kombinationen ändert
Von lingit im Forum PHPAntworten: 5Letzter Beitrag: 28.03.07, 19:46 -
Mittels FOR-Schleife Alphabet erzeugen, abhängig von INT[] Wert
Von Mik3e im Forum PHPAntworten: 16Letzter Beitrag: 29.06.05, 01:50





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren