Matematikken bag tegneprogrammet

Appletten parallelforskyder figuren således at midtpunktet anbringes midt i tegnevinduet. Midtpunktet beregnes som gennemsnittet af alle de indtastede punkter (sammenlign med midtpunktet af et linjestykke givet ved endepunkterne !).

Drejninger foretages om akser gennem figurens midtpunkt (lodret akse , vandret akse og en akse vinkelret på tegneplanen), se drejning i rummet. Da drejningsakserne er parallelle med koordinatsystemet, reduceres koordinattransformationerne til parallelforskydninger.

Zoom foretages ligeledes ud fra midtpunktet, og virker ved at ændre på enheden.

Hvis vinkelspidserne P1P2P3 ... i en polygon indtastes i positiv omløbsretning, vil normalvektoren

P1P2 x P2P3

pege ind mod beskueren. Da projektionsvektoren også peger ind mod beskueren bliver skalarproduktet mellem de to vektorer positivt.

Når polygonen drejes følger normalvektoren med, mens projektionsvektoren er uændret. Når vinklen mellem de to overstiger 90 grader bliver skalarproduktet negativt.

Polygonens forside vender altså ud mod beskueren, når skalarproduktet er positivt, mens et negativt skalarprodukt viser at polygonens bagside er forrest. Appletten kan derfor tegne en uigennemsigtig (solid) figur ved at undlade at tegne polygonen, når skalarproduktet er negativt.

Metoden fungerer selvfølgelig kun optimalt, hvis to forsider ikke overlapper hinanden delvist (jvf. eksemplet med vinkelhuset). I det tilfælde vil den sidst tegnede overlappe den anden, dvs. at tegnerækkefølgen bliver vigtig. Problemet er ikke løst i appletten, så det overlades til brugeren at tage højde for dette tilfælde.

 

02/2004/pmh