In de 3-dimensionale ruimte wordt een loodrechte projectie op een vlak dat het punt $(0, 0, 0)$ bevat, 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 projectiematrix() met als enig argument een kolomvector $$\mathbf{u}$$, voorgesteld door een NumPy-rij (dus een rij in 1 dimensie). De functie geeft een NumPy-tabel (dus een 2-dimensionale rij) terug, die de projectiematrix van de loodrechte project op het vlak gedefinieerd door $$\vec{u}$$ voorstelt.

Argumenten

De kolomvector (als NumPy-rij, 1D) die de normaalvector op het projectievlak voorstelt

Resultaat

Een $$3 \times 3$$ projectiematrix als NumPy-tabel (2D).

Voorbeeld

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