Grafiken in PHP

Über mich

Steckbrief: Christian Rohrhofer - 17 Jahre (180690) - 9433 St.Andrä - Musik, Computer, Freunde, Skifahren, ...

Die Aufgabenstellung

Gesucht sind Grafiken, die mit PHP erstellt und verändert wurden. Dazu wird die GD-Funktionsbibliothek benötigt.

Die GD Library, kurz GD oder GDlib ist eine von Thomas Boutell und anderen entwickelte Open Source-Programmbibliothek zur dynamischen Erzeugung und Manipulation von Grafiken. (lt. Wikipedia)

Programmausschnitte

Im Speziellen wird jetzt die Entstehung der Turtelgrafiken beschrieben. Falls Sie sich jedoch auch für den weiteren Code interessieren, können Sie im Quelltext nachlesen.

Hier sind drei globale Variablen, die eine Art "Zeiger" für die Turtelgrafiken dartellen. In $x und $y sind die aktuellen Koordinaten gespeichert, in $winkel die aktuelle Orientierung des "Zeigers". Zu Beginn des Skripts sind diese Werte noch 0, da sie später der jeweiligen Turtelgrafik angepasst werden.

// Globale Variablen		
$winkel = $x = $y = 0;

Der folgende Programmausschnitt zeigt die (vereinfachte) Funktion "vor". Der Aufruf dieser Funktion zeichnet eine Linie mit der Länge, die durch den Parameter "strecke" vorgegeben wird.

function vor($strecke) {

	// Die Anfangs- und Endkoordinaten der Linie werden berechnet
	$bogen=$winkel*pi(void)/180;
	$dx=$strecke*sin($bogen);
	$dy=$strecke*cos($bogen);
	
	// Funktion der GD Library um eine Farbe zu definieren
	$black = ImageColorAllocate($image,0,0,0);
	
	// Funktion der GD Library um eine Linie im Bild "$image" 
	// vom Punkt A($x/$y) zum Punkt B($x+$dx/$y+$dy) in der Farbe "$black" zu zeichnen
	imageline($image,round($x),round($y),round($x+$dx),round($y+$dy),$black);
	
	// Die neuen Koordinaten des "Zeigers" festlegen
	$x=+$dx;
	$y=+$dy;
}		

Der nächste Codeausschnitt zeigt die Funktion "rechts". Sie dreht den Zeiger und ermöglicht es, die Richtung zu wechseln. Dabei wird die globale Variable $winkel durch dem Parameter $grad manipuliert.

function rechts($grad) {
	$winkel=$winkel-$grad;
}		

Die dritte Funktion (auch vereinfacht) zeichnet eine Schneeflocke mit Hilfe von Rekursion. Zur Verwendung der Funktion werden die beiden erwähnten Funktionen "vor" und "rechts" benötigt!

function schneeflocke($laenge) {

	// Auf jedem "Arm" der Schneeflocke wird noch eine 
	// Schneeflocke gezeichnet. Insgesamt 6x
	for($h=1;$h<=6;$h++) {
		vor($laenge);
		if ($laenge>5) schneeflocke($laenge/3);		// Rekursiver Aufruf
		vor(-$laenge);
		rechts(60);
	}
}		

Beispiele von Grafiken in PHP

Testen Sie selbst!

Turtle:
Grösse:
Detail:
Breite (X):
Höhe (Y):