In de 3-dimensionale ruimte wordt een loodrechte projectie op een vlak (dit vlak bevat steeds het punt $$(0,0,0)$$) ondubbelzinnig voorgesteld door een normaalvector $$\vec{u}$$ van dit vlak. Anderzijds wordt de loodrechte projectie ook door een reële $$3 \times 3$$ projectiematrix $$\mathbf{P}$$ voorgesteld, zodat de projectie van het punt met coördinaat $$(x, y, z)$$ kan gevonden worden uit

$$ \mathbf{P} \left( \begin{array}{c} x\\ y\\ z\\ \end{array} \right) $$

In deze oefening gaan we op zoek naar de projectiematrix $$\mathbf{P}$$, gegeven een normaalvector $$\vec{u}$$ van het projectievlak. Hierbij ga je als volgt tewerk:

Schrijf de functie $$\verb!projectiematrix()!$$ met als enig argument een kolomvector $$\mathbf{u}$$ (niet noodzakelijk genormeerd) als NumPy-matrix. De functie geeft een NumPy-matrix (dus GEEN array) terug, die de projectiematrix van de loodrechte project op het vlak gedefinieerd door $$\vec{u}$$ voorstelt.

Argumenten

De kolomvector (als NumPy matrix) die de normaalvector op het projectievlak voorstelt

Resultaat

Een $$3 \times 3$$ projectiematrix als NumPy-matrix.

Voorbeeld

n1 = np.matrix([[1.],[5.],[1.]])
projectiematrix(n1) = 
[[ 0.96296296 -0.18518519 -0.03703704]
 [-0.18518519  0.07407407 -0.18518519]
 [-0.03703704 -0.18518519  0.96296296]]