Matlab中的高级绘图

说是高级绘图, 其实在无比强大的matlab中并不难.
1.3D曲线

3维的曲线绘制几乎和2维的plot一样简单,不同的是我们使用的是plot3函数:

>> time=0:0.001:4*pi;

>> x=sin(time);

>> y=cos(time);

>> z=time;

>> plot3(x,y,z,'k','LineWidth',2);

>> zlabel('Time');

 出来的效果如图:

 

2.面的表示

与线相比,可能虚拟化的3D面要用得更多一些。内建的函数surf就是用来绘制由xyz坐标系下的点构成的平面。不过在构造三维面之前需要先得到一个[X,Y]矩阵,而不能直接用xy向量。该矩阵可以由函数meshgrid(x,y)得到。例如:

>> x=-pi:0.1:pi;

>> y=-pi:0.1:pi;

>> [X,Y]=meshgrid(x,y);

>> %然后我们对XY阵的每个点求值

>> Z =sin(X).*cos(Y);

>> surf(X,Y,Z)

效果如图:

 

当然我们还可以对图形进行进一步的处理,比如用shading方法自定义一些着色方案。

>>shading flat

此时,每个小方格的有自己固定的颜色:


>> shading interp

高洛德着色, 3D模型各顶点的颜色进行平滑、融合处理:

 

3.轮廓线(等高线)

在上面的例子中,我们还可以使用contour函数可以绘制等高线

>> contour(X,Y,Z,'LineWidth',2)

如图:

 

为了看得更直观,不妨使用mesh函数将原图以网格面呈现在等高线图中:
>> hold on
>> mesh(X,Y,Z);

 

注意此时颜色是随z轴渐变的。
Freesc
2009年9月6日

posted on 2009-09-06 17:57 J.D Huang 阅读(...) 评论(...) 编辑 收藏

统计