How to rotate entire 3d data with x,y,z values along a particular axis (say x axis)?

387 vues (au cours des 30 derniers jours)
I need to rotate my 3d dataset defined by x,y,z coordinate along x axis at a specified angle (say 45 degree). This kinds of rotations are often needed when processing scanner and LIDAR data. MATLAB can do exactly what I want to do, but in graphic objects only i.e. using rotate(h,direction,alpha). However, this doesn't change the source data. I need to get the new rotated data, how can I retrieve the new rotated x,y,z data? Or, could you please suggest how to calculate in MATLAB?
Thank you,

Réponse acceptée

Roger Stafford
Roger Stafford le 30 Mar 2014
Let X,Y,Z be arrays of the rotated points in the dataset. For rotation along the x-axis:
X = x;
Y = y*cos(p)-z*sin(p);
Z = y*sin(p)+z*cos(p);
For rotation p radians in the direction from the y-axis toward the z-axis, that is, in accordance with the "right-hand rule" about the positive x-axis.
  2 commentaires
Sagar
Sagar le 31 Mar 2014
Modifié(e) : Sagar le 31 Mar 2014
Thanks, exactly what I was looking for. It would be great, if you can provide similar formula for rotating around y and z axis as well.
Visa Suomi
Visa Suomi le 26 Sep 2017
Modifié(e) : Visa Suomi le 26 Sep 2017
Here are the transformations for all three axes.
Around X-axis:
X = x;
Y = y*cos(theta) - z*sin(theta);
Z = y*sin(theta) + z*cos(theta);
Around Y-axis:
X = x*cos(theta) + z*sin(theta);
Y = y;
Z = z*cos(theta) - x*sin(theta);
Around Z-axis:
X = x*cos(theta) - y*sin(theta);
Y = x*sin(theta) + y*cos(theta);
Z = z;

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 30 Mar 2014
  7 commentaires
Matt J
Matt J le 31 Mar 2014
Sorry, never mind. The syntax needs to be
XYZnew = AxelRot(XYZ, angle, [1 0 0],[]);
Sagar
Sagar le 31 Mar 2014
That works. Thanks,
-Sagar

Connectez-vous pour commenter.

Catégories

En savoir plus sur 3-D Scene Control dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by