Rotations

Started by
3 comments, last by NetArc 22 years, 8 months ago
Im in need of some help in the area of rotations... I have this 3d model displayed at point X, and this model is a simple rectangle. No lets say I wanted to rotate that object so the top pointed towards point Z. I guess i would need a direction vector and that would be done simply by Dir=Z-X But what im lost at is how to actually apply that direction to the object somehow to make it rotate to look at its target. Perhaps matrices or quaternions would have something to do with it... Any help would be greatly appreciated. -NetArc
-NetArc
Advertisement
Yes, matrices are at the root of your problem. Quaternions are one way to accomplish what you want, but not the only way (i.e., if you already know global vectors that you want you object''s local x, y, and z directions to point in, you can construct a rotation matrix directly without computing anything).

I''ll point you to the resources/article section of gamedev.net for some possibly helpful tutorials. There are articles on quaternions and matrices, and here are my recommendations.

For an intro to 3D math and matrices, look at the article written by the late Seamus McNally, who really had a good grasp of 3D transformations that shows in the article:

http://www.gamedev.net/reference/articles/article695.asp

I actually don''t recommend any of the other articles referenced by gamedev.net on matrices. I only glanced at them but I see too much that can lead to confusion and misunderstanding. Stick with the McNally paper and ask more question here if you''re confused.

I looked at the quaternion articles and believe this may be the best one of the group:

http://www.gamasutra.com/features/19980703/quaternions_01.htm

There are a couple of books that I recommend for a general understanding of 3D transformations and matrices:

"Linear Algebra with Applications," by Steven Leon is an introduction to linear algebra and matrices. I don''t know if you''re in high school, college, or something else, but this is sort of an undergraduate college level book. Its not advanced, though, and younger students might be able to follow it. Look for it in a library or used as it ain''t a cheap book new.

"Computer Graphics: Principles and Practice, 2nd Edition," by James Foley, John Hughes, Andries van Dam, and Steven Feiner is a standard in the field of the mathematics of computer graphics. It covers 2D and 3D transformations (i.e., the rotation you want to apply) in detail, along with much much more. It doesn''t cover advanced modern techniques, but for the fundamentals its pretty good. Its available at most large bookstores, including online (amazon, etc.).

Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net
rotation about Z axis matrix is
cos(a) sin(a) 0 0
-sin(a) cos(a) 0 0
0 0 1 0
0 0 0 1
You must multipl. it with all your object''s points. It''s simple

P.S a - rotate angle in radians ( a = angle_in_deg * pi/180
do you speak english :)?
finas does answer the specific question correctly. His is a 4x4 matrix which requires that you represent your points as homogeneous coordinates, e.g., (x,y,z,1) for points and (x,y,z,0) for vectors.

If you''re interested in composite rotations in 3D (i.e., about an arbitrary axis) or just a fundamental understanding of transformation matrices in general, the references I referred to can help.

Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net
Thanks for the help, those references were quite helpfull... Thanks again... =)

-NetArc
-NetArc

This topic is closed to new replies.

Advertisement