Rotating a point cloud fails
    2 views (last 30 days)
  
       Show older comments
    
    Pseudoscientist
 on 2 Sep 2022
  
    
    
    
    
    Commented: Pseudoscientist
 on 2 Sep 2022
            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?
0 Comments
Accepted Answer
  Bruno Luong
      
      
 on 2 Sep 2022
        The last index of this line should be 3
V = rotation_mat*[V1(:,1) V1(:,2) V1(:,2)]'
More Answers (0)
See Also
Categories
				Find more on Point Cloud Processing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!