- Als de camera precies naar het punt (x, y, z) kijkt, dan is (xs, ys) = (0, 0)
- Als de camera rechts van het punt (x, y, z) kijkt, dan is xs negatief
- Als de camera links van het punt (x, y, z) kijkt, dan is xs positief
- Enzovoorts, oftewel ik wil eignelijk een projectie maken van driedimensonale ruimte in de richting van de camera en dat vertalen naar een vlak. Zegmaar ik wil het beeld weten dat de camera kan "zien".
Mijn eerste idee was ongeveer zoiets als het volgende.
- Transleer alle punten zodat de camera op (0, 0, 0) is. Oftewel, transleer het punt (x, y, z) over -(xc, yc, yc). Je krijgt een vector (x - xc, y - yc, z - zc)
- Bepaal het uitwendig product van (x - xc, y - yc, z - zc) met de camerakijkrichting, verkrijg zo een vector v die loodrecht staat op beide.
- Bereken de hoek h tussen de kijkrichting en (1, 0, 0)
- Draai zo verkregen punt om de oorsprong met draaias v en hoek h. Dit komt overeen met het draaien van de kijkrichting over deze hoek, de kijkrichting is dus nu (1, 0, 0).
Ik heb een formule waarmee ik een vector om een zekere as over een zekere hoek kan draaien, dus die mag je gebruiken. - Het probleem is teruggebracht naar een camera met positie (0, 0, 0) en kijkrichting (1, 0, 0) die kijkt naar een vector (xp, yp, zp) (zoiets had ik beredeneerd maar ik zie het nu even niet)
- De lijn van de camera naar het zo gevormde punt heeft een zekere hoek met (1, 0, 0). Neem (xs, ys) zo dat de afstand tot de oorsprong in het vlak, een constante maal deze hoek is. Verder wil je dat xs : ys = yp : zp en dat xs > 0 dan en slechts dan als yp > 0.