Hello,
I'm attempting a rotate a point cloud that is defined in the attachment 'point_cloud.mat'. The points are 32 points equidistant on the surface of a unit sphere.
load('point_cloud.mat')
scatter3(V1(:,1),V1(:,2),V1(:,3))
% I'm attemping to rotate the point cloud around the three elementary rotation axes simultaneously:
for x=1:360
Rx = [1 0 0; 0 cosd(x) -sind(x); 0 sind(x) cosd(x)];
Ry = [cosd(x) 0 sind(x); 0 1 0; -sind(x) 0 cosd(x)];
Rz = [cosd(x) -sind(x) 0; sind(x) cosd(x) 0; 0 0 1];
rotation_mat = Rx*Ry*Rz;
V = rotation_mat*[V1(:,1) V1(:,2) V1(:,2)]'; % rotate data
h = scatter3(V(1,:)',V(2,:)',V(3,:)','g');
pause(0.05)
hold on
delete(h)
end
However, it looks the projection of the 3d point cloud on a 2d surface is being rotated not the point cloud.. ANy ideas?

 Réponse acceptée

Bruno Luong
Bruno Luong le 2 Sep 2022

0 votes

The last index of this line should be 3
V = rotation_mat*[V1(:,1) V1(:,2) V1(:,2)]'

Plus de réponses (0)

Catégories

En savoir plus sur Guidance, Navigation, and Control (GNC) dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by