Een 3D wereld afbeelden op een foto (of kijkvlak of het computerscherm) gaat, zoals we straks laten zien, precies het zelfde als het afbeelden van een 2D wereld op een lijn zoals in figuur 9. De taak die we moeten uitvoeren is de coördinaten van de beeldpunten te berekenen op de kijklijn (kijkvlak in 3D) (1). In 3D moeten we daarna het kijkvlak als een ”euclidisch vlak beschouwen” (2) en de kijkvlak coördinaten nog naar schermcoördinaten vertalen (3).
Kijkende vanuit wordt een punt afgebeeld op een punt op kijklijn. Om de coördinaten van te krijgen moeten we een lijn trekken vanuit het kijkpunt door en deze snijden met de kijklijn . In het projectieve vlak zijn en gegeven door de vectoren:
Ook de lijn kunnen we als een vector gaan schrijven. Daartoe moet er eerst weer wat begrip over de euclidische lijn worden uitgebreid.
In het begin van dit document hebben we gezien dat een meer algemenere schrijfwijze voor een lijn
is. Om
naar een vector notatie van de lijn in het projectieve vlak te komen brengen we ook de term
naar
links:
ofwel
met
.
De en
in deze vergelijking zijn de euclidische coördinaten voor een punt. In de vertaling naar
het projectieve vlak werd het euclidische punt uitgebreid met een derde coördinaat
die voor een echt euclidisch punt gelijk is aan 1 . We schrijven nu ook
in de vergelijking:
. Voor een projectief punt
dat niet op ligt zal deze
vergelijking niet kloppen en is .
In het projectieve vlak is het punt het zelfde als voor een willekeurig getal ongelijk 0 want zoals eerder geschreven: een punt wordt weergegeven als een lijn door de oorsprong in een 3D weergave van het projectieve vlak. Zo zullen de coördinaten van en uit de opgave ook aan de vergelijking voor de lijn voldoen. Controleer dit. Voor een projectieve lijn introduceren we lijn-coördinaten die worden gegeven door de coëfficiënten voor de en :
Ook hier geldt voor een willekeurig getal ongelijk 0 want als we de hele vergelijking voor met vermenigvuldigen krijgen we dezelfde oplossing voor en . In de opgave is
Vervangen we die coördinaten door dan blijft de vergelijking gelden. Zowel een lijn als een punt worden nu gegeven als een vector ofwel een matrix met één kolom. Voor een nog kortere notatie van een lijn, die ook handig is voor hogere dimensies, introduceren we het inproduct (ook wel dot product genoemd) van twee vectoren en als :
(21) |
Het resultaat van een inproduct is een getal (eigenlijk doen we het zelfde bij het uitrekenen van matrixelementen bij een matrixvermenigvuldiging). Dit inproduct van twee vectoren heeft de volgende eigenschappen:
Een punt ligt dus op een projectieve lijn als geldt
Er is nog een heel andere manier om een vergelijking van een lijn te krijgen. Dit lichten we toe met de lijn door de punten en en de lijn die daar doorheen gaat. Een lijn wordt omgezet tot een vlak door oorsprong in een 3D weergave van het projectieve vlak. Een willekeurig punt in dit vlak kun je als volgt krijgen:
waarin en gewone getallen. In wiskundige taal zeggen we is een lineaire combinatie van de vectoren en . Opgaven:
|
Het snijpunt ligt op dus er geldt:
(23) |
ligt ook op de lijn door en en is te schrijven als een lineaire combinatie van en :
(24) |
We zijn dus op zoek naar getallen en die er voor zorgen dat zowel als op komt te liggen. We nemen nu de vorm voor en vullen die in in de vorm voor :
Volgens de eigenschappen van het inproduct is dit laatste gelijk aan:
Hieruit lossen we op
Merk op dat omdat het kijkpunt niet op kijklijn ligt is . Invullen in de voorwaarde van op levert:
Omdat in het projectieve vlak kunnen we gewoon weglaten:
Links en rechts vermenigvuldigen met het getal geeft
We gebruiken weer het argument zodat overblijft
(25) |
Tijd voor een voorbeeld: Vraag: Gegeven zijn de euclidische punten: Antwoord:
Schalen zodat de
coördinaat van
gelijk wordt aan 1 levert: |
Ons streven was om alles via matrixvermenigvuldiging met op te lossen. Hoewel heel elegant willen we het inproduct met in de vergelijking omschrijven totdat we een matrixvermenigvuldiging met overhouden. Besef eerst dat
(26) |
Verder is
Hierin is de getransponeerde van de vector . Ter herinnering 3.3.2: in het algemeen is de getransponeerde van een matrix een nieuwe matrix waarin de rijen en kolommen verwisseld zijn. Ofwel de eerste rij van wordt de eerste kolom van , de tweede rij van wordt de tweede kolom van , etc.
Voorbeeld:
De getransponeerde van de matrix
is .
Gebruikmakend van deze nieuwe schrijfwijze van het inproduct vervangen we alleen
in
(26):
Het lijkt of we nu buiten haakjes kunnen brengen. Het probleem is nog dat een getal is en een matrix (Waarom?). Dit probleem kunnen op lossen door in met de driedimensionale eenheidsmatrix te vermenigvuldigen. Dit geeft:
(27) |
waarin een matrix is.
Samenvattend: |
Bij een projectie in het vlak van een punt op een lijn vanuit kijkpunt wordt het beeldpunt op lijn uitgerekend door de matrixvermenigvuldiging waarin |
Voorbeeld:
Vraag: Gegeven zijn de euclidische punten
op en
de lijn .
Geef de euclidische coördinaten van het snijpunt
van de
lijnen
en .
Antwoord:
De projectieve versies van
en
zijn:
en de projectieve lijn-coördinaten voor de projectieve lijn
zijn
.
Nu is . De
matrix
wordt dan:
Het projectieve snijpunt wordt dan
Schalen naar levert weer het bijbehorende euclidische punt .
Het voorbeeld laat zien dat het proces om de matrix te bepalen lastiger is dan het direct uitrekenen zoals in het vorige voorbeeld is gedaan. Echter we hebben nu een matrix die we met alle punten in een mogelijke wereld kunnen vermenigvuldigen. Dit levert winst. Bovendien is de matrix alleen afhankelijk van het kijkpunt en de kijklijn .