How to rotate a surface(or a 2D plane) in 3D Cartesian coordinate ?

조회 수: 71(최근 30일)
Hi everyone,
I am trying the tilt a 2 dimension plane or surface by some small incremental angle along a particular axis (1. about x - axis and 2. about y-axis) using the rotation matrix formula.
for example,
% the 3D volume has a dimension of - 64 x 64 x 64
% the plane is placed inside the 3D volume and is defined as a set of points
y = 24:1:40;
x(1, 1:size(y,2)) = 32;
z(1, 1:size(y,2)) = 20;
plane = [x; y; z];
So, when I try to rotate this plane about a particular axis using the rotation matrix, R = [cos(theta) -sin(theta) 0; sin(theta) cos(theta) 0; 0 0 1], I am not able to find the new values of the x, y and z point for the considered plane correctly.
I also have confusion about the rotation (pitch, yaw and roll).
Therefore, if someone could please help me understand the concept about the rotation and suggest a correct way to appraoch the problem.
Thank you.

채택된 답변

darova 2021년 9월 5일
See this example:
R = @(a) [cosd(a) -sind(a); sind(a) cosd(a)];
t = 0:.1:2*pi;
[x,y] = pol2cart(t,5+sin(5*t));
v1 = R(15)*[x;y]; % rotate around Z axis
z = x*0;
v2 = R(15)*[x;z]; % rotat around Y axis
  댓글 수: 4
darova 2021년 9월 8일
You are welcome. Let me know if it works

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by