How to rotate a surface(or a 2D plane) in 3D Cartesian coordinate ?
조회 수: 71(최근 30일)
표시 이전 댓글
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.
% 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.
댓글 수: 0
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
Find more on Surface and Mesh Plots 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!