今天学三维作图 (*^__^*)……
三维曲线作图
用到的命令:plot3
基本格式:plot3(x,y,z,s)
这里要画曲线,你需要知道该曲线的参数方程
x=x(t),y=y(t),z=z(t)
然后其他就和二维的情况一样了
来,做个示范~
t=(:0.02:)*pi;
x=sin(t);
y=cos(t);
z=cos(*t);
plot3(x,y,z,'b-');
box on;
legend('example');
这里可以改变观察视角~~~
或者在命令栏里使用
view来改变视角
view([x,y,z])设置观察点的直角坐标
view([az,el])设置观察点的方向角和俯视角
嗯,三维曲线的绘图就这么简单(⊙v⊙)
那我们再来看看三维曲面怎么画图~~~~
matlab三维曲面作图的思路:
已知两个向量x,y,然后求z=f(x,y)
z是一个矩阵,zij=f(xi,yj)遍历所有x,y的组合
得到一系列的点(xi,yj,zij)
然后得到拟合的曲面
同样x,y要取的比较精细,不然得到的都是平面
作图的步骤要背喔!!!ヾ(o◕∀◕)ノヾ
第一步:
使用meshgrid 函数生成网格节点矩阵X,Y
调用方法[X,Y] = meshgird(x,y)
x,y是上述的两个向量
我们来看看网格节点生成的效果
在命令窗口输入
clf
x=:0.2:;
y=x;
[x y]=meshgrid(x,y);
plot(x,y,'b+')
然后计算所有的z=f(x,y)就可以了
所以第二步就是计算Z=f(X,Y)
接下来第三步使用mesh或者surf函数绘制曲面
此外meshz和meshc除了作图还有不同的功能
surf画出的曲面是网格表面着色的图形,以不同的颜色表示曲面曲率的大小
下面我们画一个锥面z=sqrt(x^2+y^2)的图像
x=-:0.05:;
y=x;
[X,Y]=meshgrid(x,y);
hold on;
grid on;
Z=sqrt(X.^+Y.^);
mesh(X,Y,Z);
再来一个参数方程的例子吧 ~
TT=:0.1*pi:*pi;
a=-;b=;
VV=-b:0.1:b;
[t,v]=meshgrid(TT,VV);
x=(a+v.*sin(t./)).*cos(t);
y=(a+v.*sin(t./)).*sin(t);
z=v.*cos(t./);
figure;surf(x,y,z);
view([- ]);
title('莫比乌斯带');
这里t,v是参数
先生成参数的范围
然后带入x,y,z的参数方程进行计算
然后就画出图像了~
下面画一个分段的图像 ~
其实就是根据条件修改矩阵的值 。
画一个z=x^2+y^2被圆柱面x^2+y^2=1以及三坐标平面所截得的在第一卦限的图像:
dd=0.01;n=+/dd;
[x,y]=meshgrid(:dd:,:dd:);
z=;
for j=:n
for i=:n
if x(i,j)<sqrt(-y(i,j).^)
z(i,j)=x(i,j).^+y(i,j).^;
else
z(i,j)=;
end
end
end
mesh(x,y,z);
差不多方法就是这些,自己有空可以去画一画双曲面,椭球面,马鞍面之类的常见曲面练习一下~~~(。・∀・)ノ゙
这一部分就告一段落了(。•́__ก̀。)