Applying 3D Rotation Matrix

10 次查看(过去 30 天)
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 个评论
James Tursa
James Tursa 2018-12-13
编辑:James Tursa 2018-12-13
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 2018-12-13
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.

请先登录,再进行评论。

采纳的回答

James Tursa
James Tursa 2018-12-13
编辑:James Tursa 2018-12-13
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 个评论
Student123
Student123 2018-12-14
Haven't had a chance to give it a shot yet but looks like what I need, thank you!
James Tursa
James Tursa 2018-12-14
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactions, Camera Views, and Lighting 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by