Programmeren en schoolwiskunde.

Ik wil de vakantie om lesmateriaal voor Unity te ontwikkelen. Dit is een programma om 3d videospellen te kunnen ontwerpen en te realiseren. Ik ben met name geïnteresseerd welke wis- en natuurkunde onderwerpen hierbij begrepen moeten worden, zodat ik her bij de lessen wis- en natuurkunde hiermee rekening kan houden. Er zit voor mijn gevoel teveel verschil tussen met name de wiskunde zoals deze in het middelbare onderwijs wordt aangeboden en de wiskunde zoals deze gebruikt wordt in programmeeromgevingen zoals bijvoorbeeld Unity.
Het eerste onderwerp dat ik wil behandelen is meteen de basis: de ruimte van Unity. In het wiskundeonderwijs wordt vrijwel altijd gewerkt met een rechtshandig orthogonaal xyz assenstelsel. Orthogonaal wil zeggen dat de x-, y- en z-as loodrecht op elkaar staan.
Rechtshandig is een niet echt wiskundige toevoeging, maar daarmee wordt bedoelt dat je met duim, wijsvinger en middenvinger op min of meer natuurlijke wijze de x-, y- en z-as kan aangeven. Omdat er bij Unity (en veel andere programma's) er in eerste instantie is uitgegaan van een 2D programmeeromgeving en de 3de dimensie pas later is toegevoegd, moet men daarom vaak werken met een linkshandig xyz-assenstelsel.

Bij computertoepassingen wordt van nature vaak voor een x-as gekozen die van links naar rechts over het beeldscherm gaat, een y-as die van beneden naar boven over het scherm gaat (of soms zoals bij Flash van boven naar beneden) en blijft er als derde de as over die "in het scherm gaat" of "uit het scherm komt" en wordt dit de z-as. Dit levert helaas een linkshandig assenstelsel op en moet hier bij de wiskundelessen even rekening mee worden gehouden.
De camera wordt in Unity standaard geplaatst op de postitie camera (0,1,-10). De camera is dus verplaatst in de richting van de kijker en staat iets boven het nul-niveau. Over de richting waarin de camera opneemt is weer een boel over te vertellen, want in eerste instantie wordt de rotatie van de camera opgegeven in zogenaamde
Euler hoeken. Het goede nieuws is dat de hoeken "gewoon" in graden kunnen worden opgegeven,. Maar dit houdt ook in dat de richting van de camera in coördinaatvorm worden opgegeven met respectievelijk de draaiing om de x-, y- en z-as. Bij een draaiing van (0,0,0) kijkt de camera met de kijker mee in de z-richting. Als wil zien wat er rechts van de camera staat, moet de camera om de y-as roteren naar (0, 90,0) en als je wil zien wat er links de camera staat moet je de camera roteren naar (0,-90,0). Als je wil zien wat er boven de camera hangt, moet je de camera om de x-as roteren naar (-90,0,0) en als je wil zien wat er onder de camera ligt moet de deze roteren naar (90,0,0). Als je de camera roteert naar (0,0,90), kijk je recht vooruit, maar lig je op jouw rechter oor en bij een rotatie van (0,0,-90) lig je op jouw linker oor.
Daarnaast geldt voor hoeken altijd dat zij cyclisch zijn. Dat wil zeggen dat het niet uitmaakt of je 0, 360 of -360 graden roteert. Zo kan je achter je kijken met een rotatie van (0,180,0) of (0,-180,0).
Nu eens kijken of ik hiervoor leuke opgaven kan bedenken, zodat er geoefend kan worden met het werken met 3D coördinaten en Euler-hoeken.
--
Geplaatst door Jelle op
MediaTechnologie op 7/21/2011 10:13:00 AM