Rotating 3D points on same plane to x-y axis

I have a 3D mesh object which contains many faces, each made up of 3 vertices. I am currently able to select a face with a click. Upon selection I would like the whole mesh object to rotate such that the selected face is parallel to the x-y axis.
i.e. I have 3 known xyz coordinates that sit on a 2D plane. I want to rotate these points so that this plane is now parallel to the x-y axis. I simply require a method of calculating the transformation matrix required for this rotation to input into the 'Matrix' property of the hgtransform object.
Thanks in advance.

Answers (1)

I simply require a method of calculating the transformation matrix required for this rotation
See, for example,

3 Comments

Matt J
Matt J on 22 Apr 2014
Edited: Matt J on 22 Apr 2014
Note also, that the transformation, as you've articulated it, is not unique. If you rotate the points to be parallel to the xy plane, any further combination of 3D translations or rotations about the z-axis will still result in points with the property "parallel to the xy plane".
You'll have to decide how you want to resolve the ambiguity.
The aim is to perform the smallest rotation possible then set the z-axis to zero for that face so that the face sits on the x-y plane itself. Orientation of the face on the x-y plane is unimportant.
Also the example you sent is fine.. but only once I already know the axis about which I must rotate and by what angle.
How can I find these arguments?

Sign in to comment.

Products

Asked:

Jay
on 22 Apr 2014

Commented:

Jay
on 23 Apr 2014

Community Treasure Hunt

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

Start Hunting!