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

P(xyz)

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

Schrijf de functie projectiematrix() met als enig argument een kolomvector 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 u voorstelt.

Argumenten

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

Resultaat

Een 3×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]]