MATLAB Answers

Kelly
0

Rotating 3D cloud matrix data

Asked by Kelly
on 17 Jun 2019
Latest activity Edited by Jan
on 17 Jun 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 Comment

Jan
on 17 Jun 2019
Post the code and a copy of the error message.

Sign in to comment.

2 Answers

Answer by Star Strider
on 17 Jun 2019

The rotate function could be an option.

  0 Comments

Sign in to comment.


Jan
Answer by Jan
on 17 Jun 2019
Edited by Jan
on 17 Jun 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];

  0 Comments

Sign in to comment.