Matlab 三维坐标系绘制教程:绘制直线、旋转曲面及常见错误解决
Matlab 三维坐标系绘制教程:绘制直线、旋转曲面及常见错误解决
本教程将指导您使用 Matlab 绘制三维坐标系,并演示绘制直线和旋转曲面的方法。此外,我们还将解决常见的错误,例如 'Z 必须为矩阵,不能是标量或向量'。
1. 绘制三维坐标系
figure(1)
hold on
grid on
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
xlim([-10,10])
ylim([-10,10])
zlim([-10,10])
view([30,30])
2. 绘制三条直线
x = linspace(-10,10,100);
y = x;
z1 = x;
z2 = x+5;
plot3(x,y,z1,'r','LineWidth',2)
plot3(x,y,z2,'g','LineWidth',2)
plot3(ones(1,100)*5,x,zeros(1,100),'b','LineWidth',2)
3. 绘制旋转曲面 1
theta = linspace(0,360,100)*pi/180;
r = 2*sqrt(2);
x = r*cos(theta);
y = r*sin(theta);
z = x;
surf(x,y,z,'FaceAlpha',0.5,'FaceColor','r','EdgeColor','none')
4. 绘制旋转曲面 2
x = linspace(-10,10,100);
y = x+5;
theta = linspace(0,360,100)*pi/180;
r = 2*sqrt(2);
Z = r*cos(theta); % 将z改为Z
[X,Y] = meshgrid(x,y);
surf(X,Y,Z,'FaceAlpha',0.5,'FaceColor','g','EdgeColor','none')
5. 显示图例
legend('l1:z=x','l2:z=x+5','l3:x=5','旋转曲面1','旋转曲面2')
常见错误解决
错误: 错误使用 surf Z 必须为矩阵,不能是标量或向量。
原因: surf 函数需要第三个参数 Z 为一个矩阵,而代码中第 25 行的 z 是一个向量。
解决方法: 将第 25 行代码中的 z 改为 Z,即大写字母 Z。
修改后的代码:
% 绘制旋转曲面 2
x = linspace(-10,10,100);
y = x+5;
theta = linspace(0,360,100)*pi/180;
r = 2*sqrt(2);
Z = r*cos(theta); % 将z改为Z
[X,Y] = meshgrid(x,y);
surf(X,Y,Z,'FaceAlpha',0.5,'FaceColor','g','EdgeColor','none')
通过这些步骤,您就可以成功绘制三维坐标系并解决常见的错误。如果您有任何其他问题,请随时在评论区留言。
原文地址: https://www.cveoy.top/t/topic/oQrV 著作权归作者所有。请勿转载和采集!