In de 3-dimensionale ruimte wordt een rotatie rond de rechte (door de oorsprong) met genormeerde richtingsvector u over een hoek θ gegeven door de rotatiematrix:

R=cosθI3+sinθ[u]×+(1cosθ)uuT

Hierin stelt I3 de 3×3 eenheidsmatrix voor, en staat [u]× voor de matrix

(0uzuyuz0uxuyux0)

Schrijf de functie rotatiematrix() met als argumenten een genormeerde kolomvector u en de rotatiehoek θ (in radiaal). De functie geeft een NumPy-matrix (dus GEEN array) terug, die de rotatiematrix rond deze rotatiehoek over een hoek θ voorstelt.

Argumenten

De kolomvector (als NumPy-matrix) die genormeerde richtingsvector van de rotatie-as voorstelt, gevolgd door de rotatiehoek (in radiaal)

Resultaat

Een 3×3 rotatiematrix als NumPy-matrix.

Voorbeeld

u1 = np.matrix([[0.],[0.],[1.]])
t1 = math.pi/2.0
rotatiematrix(u1, t1) = 
[[  6.12323400e-17  -1.00000000e+00   0.00000000e+00]
 [  1.00000000e+00   6.12323400e-17   0.00000000e+00]
 [  0.00000000e+00   0.00000000e+00   1.00000000e+00]]
w3 = math.sqrt(3)
u2 = np.matrix([[1./w3],[1./w3],[1./w3]])
t2 = math.pi/6.0
rotatiematrix(u2, t2) = 
[[ 0.9106836  -0.24401694  0.33333333]
 [ 0.33333333  0.9106836  -0.24401694]
 [-0.24401694  0.33333333  0.9106836 ]]