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

조회 수: 39(최근 30일)
S 2021년 9월 3일
댓글: darova 2021년 9월 8일
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).
Thank you. 댓글을 달려면 로그인하십시오.

### 답변(1개)

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));
line(x,y)
v1 = R(15)*[x;y]; % rotate around Z axis
line(v1(1,:),v1(2,:),'color','r') figure
z = x*0;
v2 = R(15)*[x;z]; % rotat around Y axis
plot(x,y)
line(v2(1,:),y,v2(2,:))
view(45,45) ##### 댓글 수: 4표시숨기기 이전 댓글 수: 3
darova 2021년 9월 8일
You are welcome. Let me know if it works

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

### Community Treasure Hunt

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

Start Hunting!