Hjælp til parabler i GD-lib med PHP.

Tags:    php

Hej udviklere,

Jeg sidder i øjeblikket og arbejder med lidt GD-lib i samspil med PHP, men jeg er desværre løbet ind i nogle vanskeligheder i mit forsøg på at tegne en parabel.

Umiddelbart er mit eget bud, at min fejl ligger i måden, hvorpå koden håndterer y-positionerne, men som det ofte er med sådanne fejl, kan det være svært selv at se sig ud af, derfor søger jeg nu råd hos jer.

Jeg har lagt kildekoden op her: http://pastebin.com/iQrD6Gbi
Det ville være fantastisk, hvis I kan hjælpe mig lidt videre med mit projekt.

Alt det bedste,
Mathias.



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Umiddelbart set det rigtigt ud, den plotter de første 9 punkter indenfor de 200x200. Men når x rammer 10 eller derover, så bliver der plottet udenfor billedet.

$ypos = 2*pow($x,2)+3*$x;
x = 10
ypos = 2*pow(x,2)+3x = 2*pow(10,2)+3*10 = 2*100+30 = 230.



Jeg ville foreslå at du ikke kæder koordinater og pixelse sammen. Det er min erfaring at det er lettere hvis du lader dit koordinat system være uafhængig af pixels og simpelt bare skaler/cutter det til de pixels du har
tilrådighed.




Stefan Svensson: Ja, det har du ret i. Det bliver selvfølgelig først tydeligere, når man ændrer forhøjer de 200x200 pixels.

Nørden: Kan du uddybe, hvad du konkret mener? Jeg er lidt i tvivl om nøjagtigt, hvordan det skal gøres nemlig.



Hvis du har dine pixel:

Fold kodeboks ind/udKode 


Og du har dit kooridnatsystem:

Fold kodeboks ind/udKode 



Så er scaleringein fra koordinater til pixel bredden/højden af pixel system divideret med bredden højde af koordinat systemet.

Dx = Px/(Kx_max - Kx_min)
Dy = Py/(Ky_max - Ky_min)

Hvis du har et koordinat x,y skal det så placeres i:

pixel_y = Py - y * Dy
pixel_x = x * Dx



t