Elk jaar werken mijn collega Pedro Tytgat en ik een project uit in onze achtuursklassen. We werken dan met een gemengde groep van vijfde- en zesdejaars rond een bepaald thema. Het eerste project in deze reeks waren de speelplaatstekeningen waarover we al schreven in het Spinnenweb van Uitwiskeling 29/1. Enkele jaren geleden werkten we rond dimensies, meer bepaald rekenen in een vierdimensionale wereld. We introduceerden dit ongeveer zoals beschreven is in de loep van Uitwiskeling 36/3. We proberen ons project altijd te besluiten met een creatieve opdracht. Dat jaar was dit:

Bedenk een object in 4D, teken het met GeoGebra en laat het roteren.

Als illustratie hierbij lieten we een roterende hyperkubus zien. Er zijn op het internet verschillende van dergelijke apps te vinden. Het schijnbaar binnenstebuiten keren van de hyperkubus is erg intrigerend. Door de leerlingen dit zelf in GeoGebra te laten construeren wilden we deze vreemde bewegingen demystificeren.

We stuurden de leerlingen natuurlijk niet ongewapend de brousse in. De voorbereiding bestond uit twee onderdelen: (1) rotaties algebraïsch beschrijven en (2) centraal perspectief gebruiken om voorwerpen voor te stellen. We beschrijven hier hoe we dat aanpakten.

Roteren in 2D

Een rotatie beschrijven met een matrix behoort niet meer tot de basiskennis van onze leerlingen. De eerste stap was dus dit aanbrengen. We beperken ons tot het roteren rond het punt \(O(0,0)\) over een hoek \(\alpha\).

Figuur 1 Rotatie over hoek α met centrum O

 

We stellen formules op om de coördinaten \((x_2,y_2)\) van het beeld \(Q\) te schrijven in functie van de coördinaten \((x_1,y_1)\) van het origineel \(P\). De eenvoudigste manier om die te vinden is te vertrekken van de polaire beschrijving van het punt \(P\). We stellen

\((x_1,y_1)=(r\cdot \cos \varphi,r\cdot \sin \varphi).\)

Als we dit punt \(P\) roteren rond \(O\) over de hoek \(\alpha\), dan krijgen we het punt \(Q\) met coördinaten

\((x_2,y_2)=(r\cdot \cos (\varphi+\alpha),r\cdot \sin (\varphi+\alpha)).\)

Met de somformules voor sinus en cosinus kunnen we dit herschrijven tot

\( \left \{
\begin{array}{l}
x_2=r \cos \varphi \cos \alpha -r\sin \varphi \sin \alpha \\
y_2=r \sin \varphi \cos \alpha +r\cos \varphi \sin \alpha
\end{array} \right..\)

Hierin kunnen we \(r\cos\varphi\) vervangen door \(x_1\) en \(r\sin\varphi\) door \(y_1\). Dit geeft:

\( \left \{
\begin{array}{l}
x_2= \cos \alpha \cdot x_1 – \sin \alpha \cdot y_1 \\
y_2=\sin \alpha \cdot x_1 + \cos \alpha \cdot y_1
\end{array} \right.. \)

In matrixnotatie wordt dit

\( \begin{bmatrix} x_2 \\ y_2 \end{bmatrix} = \begin{bmatrix} \cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha \end{bmatrix} \cdot \begin{bmatrix} x_1 \\ y_1 \end{bmatrix} .
\)

De matrix

\( R=\begin{bmatrix} \cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha \end{bmatrix}
\)

is de rotatiematrix.

Van 2D naar 3D

Om een punt te roteren om een rechte in drie dimensies bekijken we de rotatie van dit punt in een vlak door dit punt en loodrecht op de rotatie-as (zie figuur 2). Roteren om de \(z\)-as komt bijgevolg neer op een rotatie in een vlak evenwijdig met het \(xy\)-vlak. De \(z\)-coördinaat van het punt verandert dus niet bij het roteren. Voor de \(x\)– en \(y\)-coördinaat volstaat het om de rotatie in het \(xy\)-vlak te bekijken. De rotatie om de \(z\)-as wordt dan beschreven door de vergelijkingen

\( \left \{
\begin{array}{l}
x_2= \cos \alpha \cdot x_1 – \sin \alpha \cdot y_1 \\
y_2=\sin \alpha \cdot x_1 + \cos \alpha \cdot y_1 \\
z_2 = z_1
\end{array} \right. \)

Figuur 2 Roteren rond de zas over de hoek α.

 

In matrixnotatie wordt dit

\( \begin{bmatrix} x_2 \\ y_2 \\ z_2\end{bmatrix} = \begin{bmatrix} \cos \alpha & -\sin \alpha & 0\\ \sin \alpha & \cos \alpha & 0 \\ 0 & 0 & 1\end{bmatrix} \cdot \begin{bmatrix} x_1 \\ y_1 \\ z_1\end{bmatrix} .
\)

De rotatie-as wordt beschreven door de vergelijkingen

\( \left \{
\begin{array}{l}
x = 0 \\
y = 0
\end{array} \right.. \)

Merk op dat het rotatiecentrum bij de 2D-rotatie door dezelfde vergelijkingen beschreven wordt. Je kunt deze vergelijkingen ook vinden door op zoek te gaan naar de vaste punten van deze rotatie. Je lost daarvoor het volgende stelsel op

\( \left \{
\begin{array}{l}
x= \cos \alpha \cdot x – \sin \alpha \cdot y \\
y=\sin \alpha \cdot x + \cos \alpha \cdot y \\
z = z
\end{array} \right.. \)

De matrix die de rotatie over een hoek \(\alpha_z\) om de \(z\)-as vastlegt noteren we als volgt

\( R_z=\begin{bmatrix} \cos \alpha_z & -\sin \alpha_z & 0\\ \sin \alpha_z & \cos \alpha_z & 0 \\ 0 & 0 & 1 \end{bmatrix}.
\)

De leerlingen kunnen nu naar analogie de matrices opschrijven die rotaties beschrijven om de \(y\)-as, respectievelijk de \(z\)-as. Dit zijn

\( R_x=\begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \alpha_x & -\sin \alpha_x \\ 0 & \sin \alpha_x & \cos \alpha_x \end{bmatrix}
\)

en

\( R_y=\begin{bmatrix} \cos \alpha_y & 0 & -\sin \alpha_y \\0 & 1 & 0 \\ \sin \alpha_y & 0 & \cos \alpha_y \end{bmatrix} .
\)

En verder doorstoten naar 4D

Wie zijn eerste stappen zet in de 4D-meetkunde, kan nog niet verder bouwen op zijn 4D-meetkunde-intuïtie. Daarom doen we deze uitbreiding door de analogieën die we zien in twee en drie dimensies door te trekken naar vier dimensies. We doen dit met behulp van een tabel (zie tabel 1). Samen vullen we de eerste twee lijnen van de tabel in. De leerlingen vullen dan zelf de derde lijn aan. Merk op dat de rotatie-as in de drie situaties door dezelfde vergelijkingen beschreven wordt!

De volgende stap is het opstellen van de rotatiematrix voor de rotatie om het \(zt\)-vlak. Ook dit gebeurt door analogie aan de vorige stappen. Zo vinden de leerlingen

Tabel 1 Samenvatting roteren in 2, 3 en 4 dimensies

 

\( R_{zt}=\begin{bmatrix} \cos \alpha_{zt} & -\sin \alpha_{zt} & 0 & 0\\ \sin \alpha_{zt} & \cos \alpha_{zt} & 0 & 0\\ 0 & 0 & 1 & 0 \\0 & 0 & 0 & 1 \end{bmatrix}
\)

Eventueel kunnen de leerlingen ook hier zoeken naar de vaste punten bij deze transformatie. Net zoals bij drie dimensies zullen ze de punten vinden waarvoor

\( \left \{
\begin{array}{l}
x = 0 \\
y = 0
\end{array} \right.. \)

De vaste punten vormen dus de ”rotatie-as’ (zoals in lagere dimensies).
De matrix \(R_{zt}\) beschrijft de rotatie om één van de zes coördinaatvlakken. Om het voorwerp dat we gaan tekenen nog beter langs alle kanten te kunnen bekijken (wat dat ook moge betekenen), gaan we niet alleen rond het \(zt\)-vlak roteren, maar ook rond het \(xy\)-vlak en het \(yz\)-vlak. We schrijven de matrices op voor deze rotaties:

\( R_{xy}=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\0 & 0 & \cos \alpha_{xy} & -\sin \alpha_{xy} \\ 0 & 0 & \sin \alpha_{xy} & \cos \alpha_{xy} \end{bmatrix}
\)

en

\( R_{yz}=\begin{bmatrix} \cos \alpha_{yz} & 0 & 0 & -\sin \alpha_{yz}\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 \\ \sin \alpha_{yz} & 0 & 0 & \cos \alpha_{yz} \end{bmatrix}
\)

Voor het effect van het ronddraaien van het 4D-object zal het niet nodig zijn om alle zes de rotaties rond een coördinaatvlak toe te passen. Met deze drie krijg je al een goed idee van het ”langs alle kanten bekijken’.

Nu we de rotaties beschreven hebben met matrices is het eenvoudig om de samenstelling ervan analytisch te beschrijven. De matrix van de samengestelde beweging vind je door de matrices in de juiste volgorde te vermenigvuldigen met elkaar. Als je eerst roteert om het \(xy\)-vlak en vervolgens om het \(yz\)-vlak, wordt de samenstelling gegeven door

\(
R=R_{yz} \cdot R_{xy}
\)

Het matrixproduct is niet commutatief. Je kunt gemakkelijk narekenen dat de volgorde van samenstellen hier ook belangrijk is. Merk op dat bij de samenstelling van \(R_{xy}\) en \(R_{zt}\) de volgorde niet uitmaakt.

Vierdimensionale voorwerpen voorstellen

Tot slot moeten we een manier vinden om een vierdimensionaal voorwerp voor te stellen. Omdat GeoGebra beschikt over een 3D-tekenvenster zoeken we een voorstellingswijze in 3D. GeoGebra zorgt dan voor de tweedimensionale voorstelling van het driedimensionale object. Op dat aspect gaan we niet verder in. Om een 4D-object voor te stellen in 3D gaan we weer door analogie te werk. De meest simplistische voorstelling van de driedimensionale ruimte op een 2D-vlak is loodrecht te projecteren volgens de \(z\)-as op het \(xy\)-vlak. Algebraïsch is dit zeer eenvoudig: je laat gewoon de \(z\)-coördinaat van de punten weg. Het is snel duidelijk dat deze manier van voorstellen elk gevoel voor ruimtelijkheid in de kiem smoort. Een kubus met hoekpunten \((\pm 1,\pm 1,\pm 1)\) wordt herleid en voorgesteld door een vierkant. Als je analoog de \(t\)-coördinaat van de vierdimensionale punten weglaat, krijg je hetzelfde effect. De hyperkubus met hoekpunten \((\pm 1,\pm 1,\pm 1,\pm 1) \)wordt herleid tot een gewone kubus.

Om van een 3D-situatie een mooie 2D-voorstelling te maken met gevoel voor perspectief, kun je gebruik maken van centrale projectie: vanuit het oog \(E\) worden de punten van het object geprojecteerd op het tafereel \(\tau\) (zie figuur 3).

De analytische uitwerking hiervan laten we hier achterwege. We geven meteen de analytische uitwerking in vier dimensies. We doen dit in een (semi-)algemene situatie zodanig dat we meteen formules vinden die we in GeoGebra kunnen gebruiken.

Figuur 3 Centrale projectie uit het oog E op het tafereel tau

 

Het oog \(E\) geven we coördinaten \((0,0,0,t_E)\). Als tafereel \(\tau\) nemen we het hypervlak met vergelijking \(t=t_\tau\). De projectie zou nog eenvoudiger zijn als we projecteerden op het hypervlak \(t=0\). Er is echter nog een speler in het spel: het 4D-object. Het is interessanter om dat voorwerp ”rond’ de oorsprong te kunnen leggen. Als het projectietafereel dan door de oorsprong gaat, beperkt dat de kijk op het object. Door deze keuze kunnen we spelen met de onderlinge afstanden van het oog, het object en het tafereel.

We werken nu formules uit voor de projectie. We projecteren een willekeurig punt \(P(x_1,y_1,z_1,t_1)\) op \(\tau\). Van de projecterende rechte \(EP\) stellen we parametervergelijkingen op. Helemaal analoog aan het werk in 3D, gebruiken we hiervoor een steunpunt (het punt \(E\)) en een richtingsvector (de vector \(\overrightarrow{EP}\)):

\( \left \{
\begin{array}{l}
x = \lambda x_1 \\
y = \lambda y_1 \\
z = \lambda z_1 \\
t = t_E+\lambda (t_1 – t_E)
\end{array} \right. \)

We zoeken het snijpunt met het hypervlak \(\tau\):

\(
t_\tau = t_E+\lambda (t_1 – t_E).
\)

Deze vergelijking lossen we op naar \(\lambda\):

\(
\lambda = \frac{t_\tau – t_E}{t_1 – t_E}.
\)

Dit geeft als beeld \(P’\) van het punt \(P\):

\(
P’\left (\frac{t_\tau – t_E}{t_1 – t_E}\cdot x_1, \frac{t_\tau – t_E}{t_1 – t_E}\cdot y_1, \frac{t_\tau – t_E}{t_1 – t_E}\cdot z_1, t_\tau \right ) .
\)

Bij het tekenen van deze punten in het hypervlak \(\tau\) laten we de \(t\)-coördinaat gewoon weg.

In het geogebrabestand zie je het resultaat van het werk van Gawein, een van de leerlingen. Hij ontwierp een soort zandloper. Aan de rechterkant zie je de berekeningen in het rekenblad van GeoGebra. Als je de animatie van een van de hoeken (bijvoorbeeld \(\alpha_{yz}\)) activeert dan krijg je een filmpje van de roterende zandloper. In de figuren 4 en 5 zie je twee tussenstappen bij deze rotatie.

Net zoals bij voorstellingen in drie dimensies kun je hier nagaan welke zij-hypervlakken zichtbaar zijn en welke niet. Dit zou zeker nog enkele lessen extra in beslag genomen hebben en we besloten om het project hier af te ronden. Voor wie dit wil uitpluizen, is de website 4D Visualization een goed vertrekpunt.

Op de website van Uitwiskeling vind je het filmpje dat Gawein maakte van zijn geprojecteerde zandloper.

 

Figuur 6 Het GeoGebrabestand van Gawein

 

Als je het bestand van Gawein wil bestuderen, kijk dan even op GeoGebraTube door op deze link te klikken.

 

Bronnen

  • 4D Visualization. Geraadpleegd op 4 november 2020 via http://eusebeia.dyndns.org/4d/vis/vis

Deel reactie