function [xx,yy,zz]=rotation3D(x,y,z,p,ang)
% Author && support : Amit Chakraborty
% This function is 3-Dimensional Rotaion.
% This program performs rotation of coordinates of an (x,y,z) by any angle.
% Any set of (x,y,z) data will be transformed to (xx,yy,zz) in the new rotated coordinates.
% Original and transformed data are plotted in blue and red respectively.
% p =1 ==> rotations around x-axis
% p =2 ==> rotations around y-axis
% p =3 ==> rotations around z-axis
% ang => amount of rotation. Just change with your requriement
%% Starting from below :
ang= deg2rad(ang); % Converting Degree 2 Radian.
% ang= rad2deg(ang); % Converting Radian 2 Degree.
if p==1
xx = x;
yy = y*cos(ang)-z*sin(ang);
zz = z*cos(ang)+y*sin(ang);
elseif p==2
xx = x*cos(ang)+z*sin(ang);
yy = y;
zz = z*cos(ang)-x*sin(ang);
else
xx = x*cos(ang)-y*sin(ang);
yy = y*cos(ang)+x*sin(ang);
zz = z;
end
figure;
plot3(x,y,z);
title('Original Data vs Rotated Data')
hold ;
plot3(xx,yy,zz,'r');
legend('Original','Rotated')
hold off;
end
引用格式
Amit Chakraborty (2024). rotation3D (https://www.mathworks.com/matlabcentral/fileexchange/113205-rotation3d), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
创建方式
R2022a
兼容任何版本
平台兼容性
Windows macOS Linux标签
致谢
参考作品: rotation
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.0 |