/* attempt to deal with prototype, bootstrap, jquery conflicts */ /* for dropdown menus */

Jump to content

Image of the Day

Day 17 -- a bunch more tools join the table :) #blender3d #screenshotsaturday #itssaturdaysomewhere #lowpoly #3D https://t.co/CYJucn0Lfv
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net's newsletters to receive the latest updates and exclusive content.


Sign up now

Deriving the matrix form of the Rodrigues formula

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
No replies to this topic

#1 Wrath87   Members   

110
Like
0Likes
Like

Posted 02 February 2013 - 04:35 AM

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.

Edited by Wrath87, 02 February 2013 - 04:49 AM.





Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.