Advertisement

Deriving the matrix form of the Rodrigues formula

Started by February 02, 2013 10:35 AM
-1 comments, last by jozsef.horvath 12 years ago
Greetings,

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.
What I have found is that I have to apply the i(1,0,0) j(0,1,0) and k(0,0,1) to this formula to get the desired form. So I did chose to express the first row vector of the matrix form which should be:

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.

This topic is closed to new replies.

Advertisement