Analog klokke
Resultatet blir slik:
I koden nedenfor vi du se at jeg er omhyggelig med å markere push- og pop par med innrykk i koden.
pushMarix(); // husk status <gjør noen transformasjoner som scale, translate, rotate > <tegn noe> pushMatrix();// husk status <transformer...> <tegn...> popMatrix(); // resett status popMatrix(); // resett status
Dette er ikke nødvendig, men erfaring tilsier at det er veldig fort gjort å introdusere feil ( med ganske merkelige resultater) dersom vi ikke holder styr på hvor vi har origo og vilken vei aksene peker.
Gevinsten med transformasjonsstrategien i dette eksempelet er at jeg trenger ikke bruke trigonometri ( sinus, cosinus) i beregning av viserposisjoner. Det ville selvsagt være fullt mulig, men den metoden vi har brukt er erfaringsmessig enklere, både å skrive og å rette feil i.
Programkoden består av en fil: