Funktionsplotter

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Jack9027
Mitglied
Beiträge: 344
Registriert: 05.01.2004 18:46

Funktionsplotter

Beitrag von Jack9027 »

ich möchte mir einen funktionsplotter in php schreiben dazu hab ich mir auf http://de.php.net/manual/de/ref.image.php die funktionen angeschaut. ich hätte gesagt, dass man sowas mit imageline macht oder lieg ich das total falsch?

danke für eure hilfe :wink:
Benutzeravatar
k-5
Mitglied
Beiträge: 166
Registriert: 05.06.2003 23:21
Wohnort: soa kaff
Kontaktdaten:

Beitrag von k-5 »

bei unstetigen funktionen(bzw bei definitionsluecken) kriegste natuerlich probleme .. (die hat aber eigentlich fast jeder funktionsploter) ..

also ist die antwort NEIN du liegst nicht falsch ..
ich will mein auto polieren ! ..

ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das :)
Jack9027
Mitglied
Beiträge: 344
Registriert: 05.01.2004 18:46

Beitrag von Jack9027 »

ok jetzt hab ich aber noch ein problem. imageline fängt doch in der oberem linken ecke vom bild an. bloss ist das für ein kordinaten system ein bisschen unpassend. wie schaff ich es, dass in der mitte des bild (0/0) ist?
Jack9027
Mitglied
Beiträge: 344
Registriert: 05.01.2004 18:46

Beitrag von Jack9027 »

ok jetzt hab ich mal ein sehr einfaches grundgerüst geschrieben:

Code: Alles auswählen

<?php
header ("Content-type: image/png");

//fenstergröße
$window_size_x = "400";
$window_size_y = "400";

//bild erzeugen
$image = ImageCreate($window_size_x, $window_size_y)  or die ("fehler beim erzeugen");

//hintergrund
$background_color = ImageColorAllocate ($image, 255, 255, 255);

//textfarbe
$text_color = ImageColorAllocate ($image, 233, 14, 91);

//einefach kordinatensysten
imageline ($image, $window_size_x/2, 0, $window_size_x/2, $window_size_y, $text_color);
imageline ($image, 0, $window_size_y/2, $window_size_x, $window_size_y/2, $text_color);

//kordinaten erzeugen
for ($i =-500; $i < 500; $i++)
{
$x_cords[] = $i;
$y_cords[] = $i*$i;
}

//kordinaten eintragen
for($i3=0; $i3 < count($x_cords); $i3++) 
{
$x1= $x_cords[$i3]+$window_size_x/2;

	if ($y_cords[$i3] == 0 )
	{
	  $y1= $y_cords[$i3]+$window_size_y/2;
	}
	else
	{
	 $y1=$window_size_y/2 - $y_cords[$i3];
	}

$x2 =$x_cords[$i3+1]+$window_size_x/2;
	if ($y_cords[$i3+1] == 0 )
	{
	  $y2= $y_cords[$i3+1]+$window_size_y/2;
	}
	else
	{
	 $y2=$window_size_y/2 - $y_cords[$i3+1];
	}


imageline ($image, $x1, $y1, $x2, $y2, $text_color);
} 

ImagePNG($image);
?>
ich versteh bloss nicht warum so komisch sachen enstehen :-?
sehen kann man das hier
Zuletzt geändert von Jack9027 am 25.06.2004 14:24, insgesamt 1-mal geändert.
Benutzeravatar
k-5
Mitglied
Beiträge: 166
Registriert: 05.06.2003 23:21
Wohnort: soa kaff
Kontaktdaten:

Beitrag von k-5 »

naja des is ne simple nach unten geoefnette recht gestreckt parabel ..

nach unten: is recht klar .. da du ja alles nach unten antraegst .. somit der 1 quatrant bei dir unten rechts ist ..

gestreckt: soltest mal dein koordinaten system ueberpruefen .. ein pixel pro einheit is weng arg viel .. meinst ned ?

im endeffekt macht er _genau_ das was er sollte .. nur verstehst du ned so ganz was du selbst gemacht hast ..
ich will mein auto polieren ! ..

ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das :)
Jack9027
Mitglied
Beiträge: 344
Registriert: 05.01.2004 18:46

Beitrag von Jack9027 »

k-5 hat geschrieben:gestreckt: soltest mal dein koordinaten system ueberpruefen .. ein pixel pro einheit is weng arg viel .. meinst ned ?
das ist mir schon klar, mir fällt aber auch nichts ein wie ich das ändern soll... :-?
Antworten

Zurück zu „Coding & Technik“