Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
|
Re: Sinus zeichnen
13. Dez 2003, 13:40
Hallo Toxman,
Versuch es folgendermaßen:
Du hast a,b,c und d gegeben. Zu jedem Punkt innerhalb dieses rechteckigen Bereichs gehört nun ein Punkt auf dem image. Du brauchst also den Zusammenhang zwischen einem Punkt und dem dazugehöreng Punkt, der gezeichnet wird.
Da das Bild nicht verdreht wird, kann man die x und y-Koordinaten einzelnd betrachten. Für die x-Koordinate gilt:
Ein Punkt mit der x=a wird auf dem Bild ganz links abgebildet, d.h. a wird zu 0. Ein Punkt mit x=b wird ganz nach rechts abgebildet, d.h. b wird zu image.width
Daraus erhält man eine lineare Funktion f(x)=width/(b-a)*x+(a*width)/(a-b)
Genauso erhält man für die y-Koordinate eine Funktion g(x)=height/(d-c)*y+(c*height)/(c-d)
Wenn du nun einen Punkt (x,y) ausgerechnet hast, dann zeichnest du auf dem image an die Stelle (f(x),g(y)) die Linie.
Natürlich musst du darauf achten, dass b>a und c>d gilt, sonst kommt es möglicherweise zu einer Division durch 0 oder das Bild steht auf dem Kopf.
Hoffe, es hilft dir weiter,
Grüße
Seniman
|