第五章 三维图形绘制.ppt
文本预览下载声明
三维数据可视化 * * * 三维绘图基本函数 1.平面网格坐标矩阵的生成 (1)利用meshgrid函数生成。 x=a:dx:b; y=c:dy:d; [X,Y]=meshgrid(x,y); x,y分别表示x轴和y轴的离散采样点,[X,Y]为网格点 坐标 x— n个元素的数组 y— m个元素的数组 X、Y是n×m的矩阵,n、m维数任意 三维网格图 mesh(X,Y,Z) mesh(X,Y,Z,c) :绘制三维空间中的网格曲面,曲面是由线条勾画成的; (X,Y,Z)组成了三维空间的网格点;c用于控制网格点颜色。 X、Y、Z是n×m的矩阵,维数任意 mesh(Z)-以矩阵Z的列下标为x、行下标为y、矩阵的元素为z组成三维网格数据绘制网线图; 以网格的形式显示三维图形。通常使用方形网格,所以网格上的每一格点必需有一三维坐标(x,y,z)与之相对应。绘图指令如下: ? 生成网格点1—— [X,Y]=meshgrid(x,y) x— n个元素的数组 y— m个元素的数组 X、Y、Z是n×m的矩阵,维数任意 ? 生成网格点2: x=x1:dx:x2;y=y1:dy:y2; X=ones(size(y))*x; Y=y*ones(size(x)); ? 表达式运算—— Z=X.^2+Y.^2 ? mesh 画网格图默认方位角:37.5o,俯角30o。 三维网格图作图要领 视点,即观察点。 Matlab控制视点的命令为: view([az,el])-通过方位角az、俯仰角el来设置视点,单位是度。(二维图缺省为0、90度。三维缺省为37.5、30度) 景物 中心 O X y Z Azimuth 方位角 俯仰角 Elevation 视点 x=-5:5; y=x; [X,Y]=meshgrid(x,y) Z=X.^2+Y.^2 mesh(X,Y,Z) 例:绘制z=x2+y2的三维网格图形 数组 矩阵 矩阵 view(60,50) 画出 表示的三维曲面,x,y 取值范围[-8,8] x=-8:.5:8; [X,Y]=meshgrid(x) R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z) view(60,70) ? colormap( [R,G,B])—— 色图设定函数 r,g,b在[0 1]区间连续取值,理论上颜色种类可达无穷多种, matlab使用三维数组表示一种颜色, 常用颜色数据见下表 §饱和色 [0 0 0] —黑色 [0 0 1] —兰色 [0 1 0] —绿色 [0 1 1] —浅兰 [1 0 0] —红色 [1 0 1] —粉红 [1 1 0] —黄色 [1 1 1] —白色 §调和色 [0.5 0.5 05] —灰色 [0.5 0 0] —暗红色 [1 0.62 0.4] —铜色 [0.49 1 0.8] —浅绿 [0.49 1 0.83] —宝石兰 x=-5:5; y=x; [X,Y]=meshgrid(x,y) Z=X.^2+Y.^2 mesh(X,Y,Z); Colormap([1,0,0]); 三维曲面图 ? surf函数—— 三维曲面绘图函数,使用方法同网格图 与三维网格图的区别: 网格图:线条有颜色,空挡是无色(背景色) 曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化 ? 调用格式: surf(x,y,z) —— 绘制三维曲面图, X、Y、Z是n×m的矩阵 x=-5:5; y=x; [X,Y]=meshgrid(x,y) Z=X.^2+Y.^2 surf(X,Y,Z) Matlab在绘三维网线图和曲面图时,一般进行消隐处理。为得到透视效果,用以下命令: hidden off -透视被遮挡的图形 hidden on -消隐被遮挡的图形 图形的透视 *
显示全部