Rotating 3D cloud matrix data

9 vues (au cours des 30 derniers jours)
Kelly
Kelly le 17 Juin 2019
Modifié(e) : Jan le 17 Juin 2019
Hi,
I have a 3D cloud point matrix (x,y,z) (39600x3) and I am trying to rotate all the points by a few degrees clockwise. I have been attempting to use 'makeghtform' however I keep getting errors and I have been doing trial and error to try and work out how to complete this task however I seem to be failing. Can anyone please help me?
Thanks
  1 commentaire
Jan
Jan le 17 Juin 2019
Post the code and a copy of the error message.

Connectez-vous pour commenter.

Réponses (2)

Star Strider
Star Strider le 17 Juin 2019
The rotate function could be an option.

Jan
Jan le 17 Juin 2019
Modifié(e) : Jan le 17 Juin 2019
Multiplacte the data with a rotation matrix, e.g. obtained by: https://www.mathworks.com/matlabcentral/fileexchange/66446-rotation-matrix
R = RotMatrix(alpha, axisOfRotation);
RotatedPoints = R * Points;
Or without this function:
% Normalized vector:
u = u(:);
u = u ./ sqrt(u.' * u);
% 3D rotation matrix:
x = u(1);
y = u(2);
z = u(3);
mc = 1 - c;
R = [c + x * x * mc, x * y * mc - z * s, x * z * mc + y * s; ...
x * y * mc + z * s, c + y * y * mc, y * z * mc - x * s; ...
x * z * mc - y * s, y * z * mc + x * s, c + z * z .* mc];

Community Treasure Hunt

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

Start Hunting!

Translated by