
How to apply affine transformation or simple rotation on n points?
    5 views (last 30 days)
  
       Show older comments
    
    Muhammad Iqbal
 on 24 Jan 2020
  
    
    
    
    
    Answered: Image Analyst
      
      
 on 24 Jan 2020
            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 Comments
Accepted Answer
  Image Analyst
      
      
 on 24 Jan 2020
        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 Comments
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!