文档详情

MATLAB绘三维图

油条
实名认证
店铺
DOC
1.03MB
约16页
文档ID:13822555
MATLAB绘三维图_第1页
1/16

1第六讲 MATLAB 可视化(二)绘三维图【目录】一、三维图形绘制步骤 ................................1二、三维绘图基本操作 ................................21、三维线图 .................................................22、三维网线图 ...............................................33、三维曲面图 ...............................................4三、透视、镂空和裁切 ................................51、图形的透视 ...............................................52、图形的镂空 ...............................................63、图形的裁切 ...............................................7四、三维图形的精细控制 ..............................81、视点与旋动 ...............................................82、色彩控制 .................................................93、浓淡处理 ................................................11五、照明和材质处理 .................................12六、简洁绘图指令 ...................................13【正文】一、三维图形绘制步骤步骤 典型指令三维曲线数据:先取一个参变量采样向量然后计算各坐标数据向量t=pi*(0:100)/100;x=f1(t);y=f2(t);z=f3(t);1 三维曲面数据:产生自变量采样向量;由自变量向量产生格点矩阵;计算格点矩阵相对应的函数值矩阵x=x1:dx:x2;y=y1:dy:y2;[X,Y]=meshgrid(x,y);Z=f(x,y);2 选定图形窗及子窗位置: 同二维调用三维曲线绘图指令:线型、色彩、数据点形plot3(x,y,z,'b-')3调用三维曲面绘图指令 Mesh(X,Y,Z);4 设置轴的范围与刻度、坐标分隔线 同二维5 图形注释:图名、坐标名、图例、文字 同二维6 着色、明暗、灯光、材质处理 colormap,shading,light,material7 视点、三度(横、纵、高)比 view,aspect二、三维绘图基本操作21、三维线图用来画三维曲线,三维曲线与一组(x,y,z)坐标相对应的点连接而成。

绘图格式为:plot3(X,Y,Z,'s')plot3(X1,Y1,Z1,'s1',X2,Y2,Z2,'s2',...)(1) X、Y、Z 是同维向量时,则绘制以 X、Y、Z 元素为x、y、z 坐标的三维曲线;(2) X、Y、Z 是同维矩阵时,则以 X、Y、Z 对应列元素为x、y、z 坐标绘制多条曲线,曲线条数等于矩阵的列数;(3) (X1,Y1,Z1,'s1')与(X2,Y2,Z2,'s2')的结构与作用和(X,Y, Z,'s')相同,表示同一指令绘两组以上曲线;(4) s、s1、s2 的意义与二维相同例】绘单条三维曲线t=(0:0.02:2)*pi; % 三维坐标用参数方程表示x=sin(t);y=cos(t);z=cos(2*t); % t为参数,得到三个同维向量plot3(x,y,z,'b-',x,y,z,'bd'); % 绘蓝色线和菱形的点view([-82,58]); % 选择观察点box on; % 显示坐标框legend('链','宝石') % 图例 -1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.500.51宝宝宝【例】绘多条三维曲线t=(0:0.02:2)'.*pi; % 三维坐标用参数方程表示x=sin(t);y=cos(t);z=cos(2*t); % t为参数,得到三个同维向量r=0.1:0.1:1; % 画系数不同的 10条曲线x=x*r;y=y*r;z=z*r;3plot3(x,y,z);view([-82,58]);box on; -1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.500.512、三维网线图以网格的形式显示三维图形。

通常使用方形网格,所以网格上的每一格点必需有一三维坐标(x,y,z)与之相对应绘图指令如下:(1) mesh(Z)-以矩阵 Z的列下标为 x、行下标为 y、矩阵的元素为 z组成三维网格数据绘制网线图;(2) mesh(X,Y,Z)-X、Y、Z 是同维矩阵,分别以三个矩阵对应位置的元素 x、y、z 组成三维网格数据绘制网线图;(3) mesh(X,Y,Z,C)-C 为与其他三个矩阵同维,给出每个格点的用色矩阵缺省时 C=Z色表说明见后)其中,画 z=f(x,y)所代表的网格数据产生如下:(1) x=x1:dx:x2;y=y1:dy:y2;X=ones(size(y))*x;Y=y*ones(size(x));(2) x=x1:dx:x2;y=y1:dy:y2;[X,Y]=meshgrid(x,y);然后根据函数求出 Z矩阵例】用网线图表现函数 2yxzclf; % 清图形窗口x=-4:4;y=x; % x、y 的取值范围都是-4 到 4[X,Y]=meshgrid(x,y); % 形成采样点矩阵Z=X.^2+Y.^2; % 计算函数值4mesh(X,Y,Z); % 绘网格图colormap(hot); % 选用色图 -4 -3 -2-1 0 12 3 4-4-2024051015202530353、三维曲面图将网线图的网格填色,形成曲面图。

格式为:surf(Z)、surf(X,Y,Z)、surf(X,Y,Z,C)含义同网线图例】用曲面图表现函数 2yxzclf;x=-4:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;surf(X,Y,Z);colormap(hot); -4 -3 -2-1 0 12 3 4-4-2024051015202530355三、透视、镂空和裁切1、图形的透视Matlab在绘三维网线图和曲面图时,一般进行消隐处理为得到透视效果,用以下命令:hidden off -透视被遮挡的图形hidden on -消隐被遮挡的图形【例】透视效果演示[X0,Y0,Z0]=sphere(30); % 产生单位球面的三维坐标X=2*X0;Y=2*Y0;Z=2*Z0; % 产生半径为 2的球面坐标surf(X0,Y0,Z0); % 画单位球面shading interp % 对球的着色进行浓淡细化处理hold on; % 绘图保持mesh(X,Y,Z) % 绘大球colormap(hot); % 定义色表hold off % 取消绘图保持hidden off % 产生透视效果axis equal,axis off % 坐标等轴并隐藏 2、图形的镂空利用非数(NaN)对图形的剪切处理。

例】演示利用 NaN 对图形剪切t=linspace(0,2*pi,100); % 产生参数r=1-exp(-t/2).*cos(4*t); % 旋转母线6[X,Y,Z]=cylinder(r,60); % 创建圆柱ii=find(X6|abs(Y)>6); % 确定超出[-6,6]范围的格点下标ZZ(ii)=zeros(size(ii)); % 强制为 0surf(X,Y,ZZ),shading interp;colormap(copper)7light('position',[0,-15,1]);lighting phongmaterial([0.8,0.8,0.5,10,0.5]) 四、三维图形的精细控制1、视点与旋动(1) 视点,即观察点,如下图所示Matlab控制视点的命令为:view([az,el])-通过方位角 az、俯仰角 el来设置视点,单位是度二维图缺省为 0、90 度三维缺省为 37.5、30 度)view([vx,vy,vz])-通过视点的直角坐标点来设定2) 图形的旋动即图形的旋转,命令为:rotate(h,direction,alpha,orgin),其中:h-被旋转的对象;direction-方向轴,可用球坐标[theta,phi]或直角坐标[x,y,z]表示;alpha-按右手法则旋转的角度;orgin-支点。

8【例】旋转指令示例shg;clf; % 图形窗口置前,清除[X,Y]=meshgrid([-2:.2:2]); % 取格点坐标Z=4*X.*exp(-X.^2-Y.^2); % 计算函数值G=gradient(Z); % 近似梯度subplot(1,2,1),surf(X,Y,Z,G) % 子图 1画曲面subplot(1,2,2),h=surf(X,Y,Z,G);% 子图 2画曲面rotate(h,[-2,-2,0],30,[2,2,0]),colormap(jet) % 旋转2、色彩控制(1) 用色风格函数colordef C -对屏幕上所有子对象设置缺省值;colordef(fig,C) -对图形窗 fig的所有子对象设置缺省h=colordef('new',C)-对新图形窗设置whitebg -使当前图形窗背景色在黑白间切换whitebg(fig) -切换指定窗whitebg(C) -使当前图形窗背景色变为 C指定的颜色C 轴背景色 图背景色 轴标色 色图 画线用色次序White 白 淡灰 黑 Jet 蓝,深绿,红,青,洋红,黄,黑Black 黑 黑 白 jet 黄,洋红,青,红,淡绿,蓝,淡灰(2)色图一种色彩用[R,G,B]基色三元行数组表示。

取值在(0,1)之间常用颜色的 RGB值:R G B 颜色 色符 R G B 颜色 色符0 0 1 蓝色 blue B 1 0 1 洋红 Magenta M90 1 0 绿色 green G 1 1 0 黄色 yellow Y1 0 0 红色 red R 0 0 0 黑色 black B0 1 1 青色 cyan C 1 1 1 白色 white WMatlab的每一个图形窗里只能有一个色图,色图为 m×3的矩阵,m 缺省为 64下表为定义的色度矩阵CM 含义 CM 含义 CM 含义Autumn 红、黄浓淡色 Gray 灰色调 Prism 光谱交错色Bone 蓝色调浓淡色 Hot 黑-红-黄-白 Spring 青、黄浓淡色Colorc。

下载提示
相似文档
正为您匹配相似的精品文档