
How to apply affine transformation or simple rotation on n points?
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
Can any one help me to apply random rotation (from 1 degree to 360 degree) on the following points :
I tried the following option but failed to generate the rotation scenario.
theta =90;
R=[cosd(theta) -sind(theta) 0 ;
  sind(theta) cosd(theta) 0;
     0 0 1];
P= [ 0 0 0;
    15 0 0;
    30 0 0;
    45 0 0;
    60 0 0];
rotpoint =P*R;
0 个评论
采纳的回答
  Image Analyst
      
      
 2020-1-24
        Try it this way:
theta = 360 * rand;
rotationMatrix = [cosd(theta) -sind(theta) 0 ;
  sind(theta) cosd(theta) 0;
     0 0 1];
initialPoints = [ 0 0 0;
    15 0 0;
    30 0 0;
    45 0 0;
    60 0 0];
plot3(initialPoints(:, 1), initialPoints(:, 2), initialPoints(:, 3), 'b.', 'MarkerSize', 30);
hold on;
rotatedPoints = initialPoints * rotationMatrix
plot3(rotatedPoints(:, 1), rotatedPoints(:, 2), rotatedPoints(:, 3), 'r.', 'MarkerSize', 30);
grid on;
xlabel('X', 'FontSize', 20);
ylabel('Y', 'FontSize', 20);
zlabel('Z', 'FontSize', 20);
caption = sprintf('The initial points have been rotated by %.2f degrees', theta);
title(caption, 'FontSize', 20);
legend('Initial', 'Rotated');

0 个评论
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Point Cloud Processing 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
