I'm trying to derive the matrix form of Rodrigues rotation formula but I do something really bad.
R{N}(V) = cos(a)*V+(1-cos(a))*(N*V)*N+sin(a)*(NxV)
Where,
- N: Unit vector of the rotation angle.
- V: The vector to be rotated around N
- a: The angle of rotation (deg).
- (N*V): The dot product of N and V vectors.
- (NxV): The cross product of N and V vectors.
R{1,*} = (cos(a)+(1-cos(a))*x2 , (1-cos(a))*x*y-sin(a)*z , (1-cos(a))*x*z-sin(a)*y)
Here's my best try so far:
Let:
n = i => n(1,0,0)
v(x,y,z)
N*V = 1*x+0*y+0*z = x
NxV = (0,-z,y)
|cos(a)*x+(1-cos(a))*x+0 | => cos(a)*x + (1-cos(a))*x ?= cos(a)+(1-cos(a))*x2
|cos(a)*y+(1-cos(a))*x-sin(a)*z | => how will cos(a) disappear?
| cos(a)*z+(1-cos(a))*x+sin(a)*y | => again no cos(a) in the final matrix :-/
I can't really understand the concept of the first element of this vector. How can I actually calculate cos(a)+(1-cos(a))*x2 from the actual cos(a)*x+(1-cos(a))*x? Everytime I stuck at:
cos(a)*x+(1-cos(a))*x+0 = cos(a)*x+(1-cos(a))*x = (cos(a) + (1 - cos(a)) * x
which does not look equals to me.