基于MATLAB函数mesh绘制由多张曲面围成的三维封闭曲面详解 |
您所在的位置:网站首页 › 曲面图像怎么画 › 基于MATLAB函数mesh绘制由多张曲面围成的三维封闭曲面详解 |
一、引言 在数学上经常要画三维曲面的图形,MATLAB提供了强大的三维绘图功能,常用的函数有mesh、surf、fmesh、fsurf、fimplicit3等,可以绘制单一的曲面,也可以绘制封闭曲面。在三重积分中经常用到封闭曲面,因此本文以旋转抛物面、抛物柱面和平面所围成的封闭曲面为例,详述了绘图过程。 二、具体实现步骤及相关代码 由于所绘封闭曲面由三张曲面围成,因此需要逐一进行绘制。 1.绘制旋转抛物面z = x^2 + y^2 首先给定自变量x和y的取值范围。考虑到旋转抛物面的特点,因此使用极坐标来处理,即设定极角和极径,再转换为直角坐标,利用mesh绘制,参考代码如下: %绘制完整的旋转抛物面 theta = [ 0:0.001:2 ] * pi; %极角的取值范围数组 r = [ 0:0.005:1 ];%极径的取值范围数组 [R, T] = meshgrid( r, theta );%生成网格坐标 X1 = R .* cos(T);%生成横坐标 Y1 = R .* sin(T);%生成纵坐标 Z1 = X1.^2 + Y1.^2;%旋转抛物面的竖坐标 C1 = 2 * ones( size(Z1) );%指定颜色 mesh( X1, Y1, Z1, C1 );%绘制旋转抛物面的网格图2.绘制平面z = 1 借用上一步旋转抛物面的横坐标和纵坐标,利用函数mesh绘制平面,参考代码如下: Z2 = ones( size(X1) );%平面的竖坐标 C2 = ones( size(Z2) );%指定颜色 mesh( X1, Y1, Z2, C2 );%绘制平面的网格图3.绘制抛物柱面y = x^2 该抛物柱面平行于z轴,因此首先在ZOX平面上生成横坐标和竖坐标的网格坐标,再利用函数mesh进行绘制,参考代码如下: x = [ -1 : 0.001 : 1 ];%横坐标取值范围 z = [ 0 : 0.001 : 1 ];%竖坐标取值范围 [ X3, Z3 ] = meshgrid( x, z );%生成ZOX平面网格坐标 Y3 = X3 .^ 2;%抛物柱面的纵坐标 C3 = 6 * ones( size(Z3) );%指定颜色 mesh( X3, Y3, Z3, C3 );%绘制抛物柱面的网格图4.使用上述方法绘制的三张曲面直接融合成一张图时,结果如下: 四、输出图形 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |