Applying 3D Rotation Matrix

5 views (last 30 days)
Student123
Student123 on 13 Dec 2018
Commented: James Tursa on 14 Dec 2018
I have 2 sets of 3D axes in Matlab. I have a list of points in the first set of 3D axes that I want to apply a rotation matrix to in order to convert them to the same location in the second set of axes. I am a bit rusty with applying rotation matrices, any help is appreciated.
  2 Comments
James Tursa
James Tursa on 13 Dec 2018
Edited: James Tursa on 13 Dec 2018
You need to form the direction cosine (rotation) matrix that goes from one coordinate frame to the other coordinate frame. You can get the elements of this matrix with the dot products of the coordinate axes that you have. How are these coordinate axes stored?
Student123
Student123 on 13 Dec 2018
Thanks for your response.
I have defined the axes like this within a function called getaxes:
if ~isequal(size(point1),[1,3]) || ~isequal(size(point2),[1,3])...
|| ~isequal(size(point3),[1,3])|| ~isequal(size(point4),[1,3])
error('Error: Inputs are in wrong dimensions')
end
z_axis= point1-point2;
z_axis=z_axis/norm(z_axis);
plane=cross(z_axis, point3-point4);
y_axis=plane/norm(plane);
x_axis=cross(y_axis, z_axis);
And then I will have points 5 and 6 for example in this coordinate system above that I wish to convert to my second coordinate system which is defined in a similar fashion.

Sign in to comment.

Accepted Answer

James Tursa
James Tursa on 13 Dec 2018
Edited: James Tursa on 13 Dec 2018
You can use this FEX submission by Matt J with your coordinate axes as the inputs to get the rotation matrix R:
Then just multiply your points with that rotation matrix R.
  2 Comments
Student123
Student123 on 14 Dec 2018
Haven't had a chance to give it a shot yet but looks like what I need, thank you!
James Tursa
James Tursa on 14 Dec 2018
Yes. Just give it the three coordinate axes directions in the two sets as the inputs to get the rotation matrix R as the output. Then just multiply all of your other points by R.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!