[转载]用MATLAB画曲面图

2017-05-07  by:CAE仿真在线  来源:互联网

曲面图,除了各线条之间的空档(称作补片)用颜色填充以外,和网格图看
起来是一样的。这种图一般使用函数 surf来绘制。自然,函数surf使用和函数
mesh相同的调用语法。比如:

[X,Y,Z]=peaks(30);
surf(X,Y,Z)
grid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ )
title( ‘ SURF of PEAKS ‘ )

[转载]用MATLAB画曲面图


MATLAB 还提供了平滑加颜色和插值加颜色功能。这可以通过调用函数shading 来实现


[X,Y,Z]=peaks(30);
surf(X,Y,Z) % same plot as above
grid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ )
title( ‘ SURF of PEAKS ‘ )
shading flat


[转载]用MATLAB画曲面图


如上所示平滑加色彩的例子中,每一补片仍保存着单一的颜色,但各块连接处的黑线已去掉。
shading interp
输出见下图



[转载]用MATLAB画曲面图


如上所示内插加色彩的例子中,同样去掉了线条,但各补片以插值加颜色,即各补片的颜色根据赋予顶点的色值,对其区间进行了插值计算。很明显,插值色彩需要比分块和平滑更多的计算量。在一些计算机系统中,插值色彩会产生非常长的打印延时或打印错误。这问题不在于PostScript 文件太大,而是由于在打印机上产生沿图形曲面连续变化的阴影所需的巨大计算量。通常对这个问题最简单的解决方法是使用平滑加色彩法来打印。


色彩对 surf作图的视觉效果有着巨大的影响。对网格图也是如此,尽管由于只有线条有颜色,对视觉效果的影响相对要小一些。 因为曲面图不能作成透明,但在一些情况下可以很方便地移走一部分表面以便看到表面以下部分,在 MATLAB 中,这是通过在所期望的洞孔的所在位置,将数据置为特定的NaN 来实现。由于 NaN 没有任何值,所有的 MATLAB 作图函数都忽略 NaN 的数据点,在该点出现的地方留下一个洞孔。例子如下:

[X,Y,Z]=peaks(30);
x=X(1,:); % vector of x axis
y=Y(:,1); % vector of y axis
i=find(y>.8 & y<1.2); % find x-axis indices of hole

j=find(x>-.6 & x<.5); % find x-axis indices of hole
Z(i,j)=nan*Z(i,j); % set values at hole indices to NaNs
surf(X,Y,Z)
grid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ )
title( ‘ SURF of PEAKS with a Hole ‘ )
输出见下图


[转载]用MATLAB画曲面图


MATLAB 的surf也有两个同种函数:surfc ,它画出具有基本等值线的曲面图;
surfl ,它画出一个有亮度的曲面图。例如:


[X,Y,Z]=peaks(30);
surfc(X,Y,Z) % surf plot with contour plot
grid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ )
title( ‘ SURFC of PEAKS ‘ )


[转载]用MATLAB画曲面图
[X,Y,Z]=peaks(30);



surfl (X,Y,Z) % surf plot with lighting
shading interp % surfl plots look best with interp shading
colormap pink % they also look better with shades of a single color
grid,xlabel( ‘ X-axis ‘ ),ylabel( ‘ Y-axis ‘ ),zlabel( ‘ Z-axis ‘ )
title( ‘ SURFL OF PEAKS ‘ )


输出见下图


[转载]用MATLAB画曲面图



开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:[转载]用MATLAB画曲面图 MatLab培训 MatLab培训课程 MatLab在线视频教程 MatLab技术学习教程 MatLab软件教程 MatLab资料下载 MatLab代做 MatLab基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com