matlab计算可视化第三次

上传人:仙*** 文档编号:132337092 上传时间:2022-08-08 格式:PPT 页数:60 大小:1.93MB
收藏 版权申诉 举报 下载
matlab计算可视化第三次_第1页
第1页 / 共60页
matlab计算可视化第三次_第2页
第2页 / 共60页
matlab计算可视化第三次_第3页
第3页 / 共60页
资源描述:

《matlab计算可视化第三次》由会员分享,可在线阅读,更多相关《matlab计算可视化第三次(60页珍藏版)》请在装配图网上搜索。

1、matlab计算可视化第计算可视化第三次三次第四章第四章 MATLAB计算的可视化(三)计算的可视化(三)图形修饰处理图形修饰处理 隐函数绘图隐函数绘图matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理4.4.1 4.4.1 视点处理视点处理 从不同的视点绘制的图形其形状是不一样的。视点位从不同的视点绘制的图形其形状是不一样的。视点位置可由方位角和仰角表示。方位角又称旋转角,它是视点置可由方位角和仰角表示。方位角又称旋转角,它是视点与原点连线在与原点连线在xyxy平面上的投影与平面上的投影与y y轴负方向形成的角度,轴负方向形成的角度,正值表示逆时针,负值表示

2、顺时针。仰角又称视角,它是正值表示逆时针,负值表示顺时针。仰角又称视角,它是视点与原点连线与视点与原点连线与xyxy平面的夹角,正值表示视点在平面的夹角,正值表示视点在xyxy平面平面上方,负值表示视点在上方,负值表示视点在xyxy平面下方。平面下方。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 MATLABMATLAB提供了设置视点的函数提供了设置视点的函数viewview,其调用格式为,其调用格式为view(az,el)view(az,el):azaz为方位角,是为方位角,是视点与原点连线在视点与原点连线在xyxy平面上的投平面上的投影与影与y y轴

3、负方向的夹角,逆时针旋转为正方向。轴负方向的夹角,逆时针旋转为正方向。elel为仰角。为仰角。它们的单位均为度。它们的单位均为度。view(2)view(2):给出了二维图形中视角的默认值(:给出了二维图形中视角的默认值(0 0,9090););view(3)view(3):给出了三维视图中视角的默认值(,:给出了三维视图中视角的默认值(,3030)az,el=view:az,el=view:返回当前图形的视角。返回当前图形的视角。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理【例例4.454.45】从不同视点观察三维曲线。从不同视点观察三维曲线。程序如下

4、:程序如下:x,y=meshgrid(0:0.1:pi/2,0:0.1:pi);z=sin(x.2)+cos(y.2);subplot(1,3,1)plot3(x,y,z);grid,xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);subplot(1,3,2)plot3(x,y,z)grid,xlabel(X-axis),ylabel(Y-axis)title(Az=90,El=0)view(90,0)subplot(1,3,3)plot3(x,y,z)grid,xlabel(X-axis),ylabel(Y-axis)title(Az=0,El=90

5、)view(0,90)或或view(2)matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 函数函数viewmtxviewmtx给出指定视角的正交转换矩阵给出指定视角的正交转换矩阵【例例4.464.46】A=viewmtx(0,90)A=1.0000 0 0 0 0 1.0000 0.0000 0 0 -0.0000 1.0000 0matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 函数函数rotate3drotate3d是较为常用的三维视角变化函数,该函数的是较为常用的三维视角变化函数,该函数的使用将触发图形窗口的使用将触

6、发图形窗口的rotate3drotate3d选项,这时,用户可以方选项,这时,用户可以方便地用鼠标来控制视角的变化,而且,视角的变化值也将便地用鼠标来控制视角的变化,而且,视角的变化值也将实时地显示在图中。实时地显示在图中。【例例4.474.47】三维视角变化函数设置视角为(三维视角变化函数设置视角为(-33-33,4242)。)。x,y,z=peaks;x,y,z=peaks;colormap(hsv(100)colormap(hsv(100)mesh(x,y,z)mesh(x,y,z)rotate3d rotate3dmatlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理

7、图形修饰处理4.4.2 4.4.2 色彩处理色彩处理1 1颜色的向量表示颜色的向量表示 MATLABMATLAB除用字符表示颜色外,还可以用含有除用字符表示颜色外,还可以用含有3 3个元素的个元素的向量表示颜色。向量元素的范围取值为向量表示颜色。向量元素的范围取值为00,11,3 3个元素分个元素分别表示红、绿、蓝别表示红、绿、蓝3 3种颜色的相对亮度,称为种颜色的相对亮度,称为RGBRGB向量,如向量,如灰色表示为灰色表示为0.5 0.5 0.50.5 0.5 0.5。下页表所示为几种常见颜色。下页表所示为几种常见颜色的的RGBRGB值。值。matlab计算可视化第计算可视化第三次三次4.4

8、 4.4 图形修饰处理图形修饰处理 表 3.7 几种常见的 RGB 向量 RGB 值 颜 色 字 符 RGB 值 颜 色 字 符 0 0 1 蓝色 b 1 1 1 白色 w 0 1 0 绿色 g 0.5 0.5 0.5 灰色 1 0 0 红色 r 0.67 0 1 紫色 0 1 1 青色 c 1 0.5 0 橙色 1 0 1 品红色 m 1 0.62 0.40 铜色 1 1 0 黄色 y 0.49 1 0.83 宝石蓝 0 0 0 黑色 k matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 2 2色图色图 色图(色图(Color mapColor map)是

9、)是MATLABMATLAB中的颜色参照表。色图中的颜色参照表。色图以以m m 3 3的数值矩阵表示,用于定义的数值矩阵表示,用于定义m m种颜色,它的每一行种颜色,它的每一行对应某个颜色的对应某个颜色的RGBRGB向量。色图保存着颜色从浓到淡或从向量。色图保存着颜色从浓到淡或从一种颜色过渡到另一种颜色的所有中间颜色的值。除一种颜色过渡到另一种颜色的所有中间颜色的值。除plotplot及其派生函数外,及其派生函数外,meshmesh、surfsurf等函数均使用色图着色。等函数均使用色图着色。MATLABMATLAB中使用函数中使用函数colormapcolormap设置和获取图像显示用的颜色

10、设置和获取图像显示用的颜色参照表,函数的调用格式为参照表,函数的调用格式为 colormap(m)colormap(m)其中其中m m为一三列矩阵,行数不限,该矩阵可以是下页为一三列矩阵,行数不限,该矩阵可以是下页表所示的颜色映像,也可以为用户自定义的颜色映像矩阵。表所示的颜色映像,也可以为用户自定义的颜色映像矩阵。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理颜色映像颜色映像相应的颜色系相应的颜色系颜色映像颜色映像相应的颜色系相应的颜色系autumn红黄色系红黄色系hsv色调饱和色系(以红色开始并束)色调饱和色系(以红色开始并束)bone带一点蓝色的灰度

11、带一点蓝色的灰度 jet色调饱和色系(以蓝色开始并束)色调饱和色系(以蓝色开始并束)colorcube增强的颜色系增强的颜色系lines线性色系线性色系cool青和洋红的色系青和洋红的色系pink柔和色系柔和色系copper线型铜色系线型铜色系prism棱镜色系棱镜色系flag交替的红白蓝黑色系交替的红白蓝黑色系spring洋红黄色系洋红黄色系gray线性灰色系线性灰色系summer绿、黄色系绿、黄色系hot黑红黄白色系黑红黄白色系winter蓝、绿色系蓝、绿色系vgaWindows16为色系为色系matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理例如:例如:

12、colormap(pink(8);%colormap(pink(8);%定义当前窗口的颜色映像为柔和色定义当前窗口的颜色映像为柔和色系,其颜色定义有系,其颜色定义有8 8种。可以通过查看颜色映像矩阵而种。可以通过查看颜色映像矩阵而得到具体的颜色值。得到具体的颜色值。例如:例如:pink(8)pink(8)ans=0.3333 0 0matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 完成对颜色映像的定义后,可以调用所定义的颜色映完成对颜色映像的定义后,可以调用所定义的颜色映像为图形服务,有像为图形服务,有pcolor,rgbplotpcolor,rgbplot

13、及及colorbarcolorbar等函数。等函数。函数函数pcolorpcolor为伪色函数,伪色并不是真正的颜色,而为伪色函数,伪色并不是真正的颜色,而是通过颜色的不同来反映相应数据数值的大小。调用格式:是通过颜色的不同来反映相应数据数值的大小。调用格式:pcolor(c)pcolor(c):其作用相当于以当前颜色映像为矩阵:其作用相当于以当前颜色映像为矩阵c c进进行行“着色着色”,即根据矩阵元素的大小在当前颜色映像中进,即根据矩阵元素的大小在当前颜色映像中进行插值着色。行插值着色。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 函数函数pcolor

14、pcolor的使用一般与函数的使用一般与函数shadingshading相结合,相结合,shadingshading的作用在于以不同方式为图形着色,其调用格式如的作用在于以不同方式为图形着色,其调用格式如下:下:shading shading 控制字符串控制字符串 其中控制字符串主要有三种形式,分别是其中控制字符串主要有三种形式,分别是faceted,interpfaceted,interp和和flatflat。其中。其中facetedfaceted为其默认形式,以平面作为着色单位;为其默认形式,以平面作为着色单位;interpinterp以插值形式为图形的像点着色;以插值形式为图形的像点着色

15、;flatflat以平滑形式定以平滑形式定义着色方式。对于义着色方式。对于pcolorpcolor函数,其着色方式默认为函数,其着色方式默认为facetedfaceted方式,可以通过调用方式,可以通过调用shadingshading加以修改。加以修改。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理【例例4.484.48】绘制矩阵绘制矩阵rosserrosser的伪色图。的伪色图。colormap(hot(80);pcolor(rosser);shading interp;shading flat;matlab计算可视化第计算可视化第三次三次4.4 4.4

16、 图形修饰处理图形修饰处理 函数函数rgbplotrgbplot是一种直接显示颜色映像的函数,其调是一种直接显示颜色映像的函数,其调用格式为;用格式为;rgbplot(colormap):rgbplot(colormap):该函数的输入变量本身是一个颜色该函数的输入变量本身是一个颜色映像,或颜色映像相似的数值矩阵,其作用是将矩阵的映像,或颜色映像相似的数值矩阵,其作用是将矩阵的三列值分别以红、绿、蓝绘出。三列值分别以红、绿、蓝绘出。【例如例如】rgbplot(hot(80)rgbplot(hot(80)此命令绘出颜色映像此命令绘出颜色映像hot(80)hot(80)的的RGBRGB三色图,如右

17、图。三色图,如右图。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 函数函数colorbarcolorbar将在当前的图形窗口中显示颜色标尺,将在当前的图形窗口中显示颜色标尺,用来反映当前使用的颜色映像,并且以此反映图形中数据用来反映当前使用的颜色映像,并且以此反映图形中数据的相对大小。其调用格式如下:的相对大小。其调用格式如下:colorbar(colorbar(vertvert)%)%垂直显示颜色标尺垂直显示颜色标尺 colorbar(colorbar(horizhoriz)%)%水平显示颜色标尺水平显示颜色标尺【例例4.49】对色图添加颜色标尺。对色

18、图添加颜色标尺。x,y,z=peaks;mesh(x,y,z);colormap(hot(80);colorbarmatlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理3 3三维表面图形的着色三维表面图形的着色 三维表面图实际上就是在网格图的每一个网格片上涂三维表面图实际上就是在网格图的每一个网格片上涂上颜色。上颜色。surfsurf函数用默认的着色方式对网格片着色。此外,函数用默认的着色方式对网格片着色。此外,还可以用还可以用shadingshading命令来改变着色方式,命令来改变着色方式,shadingshading命令的调命令的调用格式为:用格式为:sha

19、ding shading 选项选项 其中,其中,“选项选项”有如下有如下3 3种取值。种取值。facetedfaceted:将每个网格片用其高度对应的颜色进行着色,:将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其颜色是黑色。这是系统的默认着色但网格线仍保留着,其颜色是黑色。这是系统的默认着色方式。方式。flatflat:将每个网格片用同一个颜色进行着色,且网格线也:将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。用相应的颜色,从而使得图形表面显得更加光滑。interpinterp:在网格片内采用颜色插值处理,绘制出的表面图:在网格片内采用颜

20、色插值处理,绘制出的表面图显得最光滑。显得最光滑。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理【例例4.504.50】三种着色方式的效果展示。三种着色方式的效果展示。x,y,z=sphere(20);x,y,z=sphere(20);colormap(copper);colormap(copper);subplot(1,3,1);subplot(1,3,1);surf(x,y,z);axis equal;surf(x,y,z);axis equal;subplot(1,3,2);subplot(1,3,2);surf(x,y,z);shading fla

21、t;axis equal surf(x,y,z);shading flat;axis equalsubplot(1,3,3);subplot(1,3,3);surf(x,y,z);shading interp;axis equalsurf(x,y,z);shading interp;axis equalmatlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 除了使用已有的颜色映像,还可以对颜色映像本身进除了使用已有的颜色映像,还可以对颜色映像本身进行操作,函数有行操作,函数有brightenbrighten和和caxiscaxis。函数函数brightenbrig

22、hten的作用是对颜色映像的色彩强弱进行的作用是对颜色映像的色彩强弱进行调整,其调用格式:调整,其调用格式:brighten(beta)brighten(beta)当当betabeta大于零时,将增强当前的色彩强度;相反,大于零时,将增强当前的色彩强度;相反,当当betabeta小于零时,将削弱当前的色彩强度。若调用过小于零时,将削弱当前的色彩强度。若调用过brighten(beta)brighten(beta)后再调用一次后再调用一次brighten(beta)brighten(beta),可以很,可以很明显地看到原图的色彩强弱变化。也可以将调整过的颜明显地看到原图的色彩强弱变化。也可以将调

23、整过的颜色映像赋以新的变量名,这样不仅会生成新的颜色映像,色映像赋以新的变量名,这样不仅会生成新的颜色映像,而且被调整的颜色映像的值也不会改变。而且被调整的颜色映像的值也不会改变。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 函数函数caxiscaxis也是一个经常用到的颜色处理函数,使用该也是一个经常用到的颜色处理函数,使用该函数可以自如地控制图形中颜色显示的范围以及色彩与数函数可以自如地控制图形中颜色显示的范围以及色彩与数值的对应关系。其调用格式为:值的对应关系。其调用格式为:caxis(cmin,cmax)caxis(cmin,cmax)cmin,

24、cmax=caxis cmin,cmax=caxis 当使用第一种方式调用时,系统将在当使用第一种方式调用时,系统将在cmin,cmaxcmin,cmax范围内与颜色映像的色值相对应,并依此为图形着色。如范围内与颜色映像的色值相对应,并依此为图形着色。如果数据点的值小于果数据点的值小于cmincmin或大于或大于cmaxcmax时,将按等于时,将按等于cmincmin或或cmaxcmax得数据点的颜色进行着色;如果数据点的全集是得数据点的颜色进行着色;如果数据点的全集是cmin,cmaxcmin,cmax的一个子集,则将按其对应的颜色进行着色,的一个子集,则将按其对应的颜色进行着色,也即此时只

25、利用了颜色映像的一部分。也即此时只利用了颜色映像的一部分。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理例对进行操作:例对进行操作:caxiscaxis(-2-2,22)此时数据限超过此时数据限超过caxiscaxis的设定限。结果如下图所示。的设定限。结果如下图所示。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理caxis(-10,10)caxis(-10,10)此时数据限小于此时数据限小于caxiscaxis的设定限,结果如下图所示。的设定限,结果如下图所示。matlab计算可视化第计算可视化第三次三次4.4 4.

26、4 图形修饰处理图形修饰处理 Matlab Matlab语言中对背景颜色语言中对背景颜色进行操作的函数:进行操作的函数:colordefcolordef【例4.51】图形背景色彩控制演示。colordef nonecolordef none x,y,z=peaks;x,y,z=peaks;mesh(x,y,z);mesh(x,y,z);colordef black colordef black mesh(x,y,z)mesh(x,y,z)matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 4.4.3 4.4.3 光照处理光照处理 MATLABMATLAB提供了

27、灯光设置的函数,其调用格式为提供了灯光设置的函数,其调用格式为 light(light(属性属性,选项选项)常用属性有表示光的颜色的常用属性有表示光的颜色的colorcolor属性、表示光源形属性、表示光源形式的式的stylestyle属性和表示光源位置的属性和表示光源位置的positionposition属性。属性。colorcolor属属性的选项可取相应的颜色字符或性的选项可取相应的颜色字符或RGBRGB三元组。三元组。stylestyle属性的属性的选项有选项有infiniteinfinite和和locallocal两个取值,分别表示无限远两个取值,分别表示无限远的平行光源和近光源。的平

28、行光源和近光源。positionposition属性的选项取三维坐标点属性的选项取三维坐标点组成的向量形式组成的向量形式xx,y y,zz。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理【例例4.524.52】光照处理后的球面。光照处理后的球面。x,y,z=sphere(20);subplot(1,2,1);surf(x,y,z);axis equal;light(Position,0,1,1);shading interp;hold on;plot3(0,1,1,p);text(0,1,1,light);subplot(1,2,2);surf(x,y,z

29、);axis equal;light(Position,1,0,1);shading interp;hold on;plot3(1,0,1,p);text(1,0,1,light);matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理MatlabMatlab语言提供的光源模式函数为语言提供的光源模式函数为lighting.lighting.其调用格式其调用格式 :lighting lighting 光源模式光源模式 光源模式为光源模式为flat,gourand,phongflat,gourand,phong以及以及nonenone等。其中等。其中flatflat

30、模式为平面模式,图形的光照单元设为图形网格,这模式为平面模式,图形的光照单元设为图形网格,这时能够大量节省系统资源,但图形效果较差,此为默认模时能够大量节省系统资源,但图形效果较差,此为默认模式;式;gourandgourand为点模式,光照单元为图形的像素点;为点模式,光照单元为图形的像素点;phongphong不仅以像素作为光照的基本单元,而且还计算分配了各点不仅以像素作为光照的基本单元,而且还计算分配了各点的反射比;当设置为的反射比;当设置为nonenone时,将关闭图形光源功能。时,将关闭图形光源功能。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理

31、【例例4.534.53】下例设置光源模式:下例设置光源模式:x,y,z=peaks;x,y,z=peaks;mesh(x,y,z);mesh(x,y,z);light(position,1,1,1)light(position,1,1,1)lighting phonglighting phongmatlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 图形表面的控制函数图形表面的控制函数materialmaterial。其调用格式如下:。其调用格式如下:materialmaterial表面控制模式表面控制模式 控制模式有控制模式有shiny,dull,metalsh

32、iny,dull,metal等,其中等,其中shinyshiny模式是指图形表面显示较为光亮的模式,模式是指图形表面显示较为光亮的模式,dulldull则则是指表面显示较为阴暗的色彩模式,而是指表面显示较为阴暗的色彩模式,而metalmetal则是则是指表面呈现金属光泽的模式。指表面呈现金属光泽的模式。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理【例4.54】将图形表面设置为metal型。x,y,z=peaks;x,y,z=peaks;mesh(x,y,z);mesh(x,y,z);light(position,1,1,1)light(position,

33、1,1,1)lighting phonglighting phong;material metalmaterial metalmatlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理 另一个涉及光照的函数为另一个涉及光照的函数为surfl,surfl,该函数与三维表面函该函数与三维表面函数数surfsurf极为相似,只是增加了对光源以及图形表面特性的极为相似,只是增加了对光源以及图形表面特性的设置,其调用格式为:设置,其调用格式为:surfl(X,Y,Z,S,K)surfl(X,Y,

34、Z,S,K)输入变量中,输入变量中,X X,Y Y,Z Z为绘制图形必须的数据矩阵,为绘制图形必须的数据矩阵,而输入变量而输入变量S S为光源控制变量,其具体形式为为光源控制变量,其具体形式为Sx,Sy,SzSx,Sy,Sz或或az,el,az,el,前一种方式给出光源位置,后一种方式给出视前一种方式给出光源位置,后一种方式给出视角;输入变量角;输入变量K K用以控制图形表面形式,具体形式用以控制图形表面形式,具体形式Ka,Kd,Ks,spreadKa,Kd,Ks,spread,其中,其中KaKa表示背景光系数,表示背景光系数,KdKd反映表反映表面漫反射特性,面漫反射特性,KsKs反映表面镜

35、面反射特性,反映表面镜面反射特性,spreadspread是镜面是镜面扩展因子。扩展因子。matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理【例例4.554.55】绘制下图所示的三维光照图形。绘制下图所示的三维光照图形。x,y,z=peaks;surfl(x,y,z,1,1,1,0.55 0.8 0.1 10)matlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理4.4.4 4.4.4 图形的裁剪处理图形的裁剪处理 MATLABMATLAB定义的定义的NaNNaN常数可以用于表示那些不可使用的常数可以用于表示那些不可使用的数据,利

36、用这种特性,可以将图形中需要裁剪部分对应数据,利用这种特性,可以将图形中需要裁剪部分对应的函数值设置成的函数值设置成NaNNaN,这样在绘制图形时,函数值为,这样在绘制图形时,函数值为NaNNaN的部分将不显示出来,从而达到对图形进行裁剪的目的。的部分将不显示出来,从而达到对图形进行裁剪的目的。【例例4.564.56】已知已知 ,绘制三维曲面图,并裁,绘制三维曲面图,并裁掉图中掉图中x x和和y y都小于都小于的部分。的部分。2222sinxyzxymatlab计算可视化第计算可视化第三次三次4.4 4.4 图形修饰处理图形修饰处理x,y=meshgrid(-5:0.2:5);x,y=mesh

37、grid(-5:0.2:5);z=sin(sqrt(x.2+y.2)./(sqrt(x.2+y.2)+epz=sin(sqrt(x.2+y.2)./(sqrt(x.2+y.2)+eps);s);subplot(1,2,1);mesh(x,y,z);subplot(1,2,1);mesh(x,y,z);i=find(x-1.5&y-1.5);i=find(x-1.5&y-1.5);z1=z;z1(i)=NaN;z1=z;z1(i)=NaN;subplot(1,2,2);mesh(x,y,z1);subplot(1,2,2);mesh(x,y,z1);matlab计算可视化第计算可视化第三次三次4

38、.4 4.4 图形修饰处理图形修饰处理matlab计算可视化第计算可视化第三次三次4.5 4.5 隐函数绘图隐函数绘图 如果给定了函数的显式表达式,可以先设置自变量如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算出函数向量,从而用向量,然后根据表达式计算出函数向量,从而用plotplot等等函数绘制出图形。但如果函数用隐函数形式给出,如函数绘制出图形。但如果函数用隐函数形式给出,如x x3 3+y y3 3 5 5xyxy+1/51/5=0 0,则很难用上述方法绘制出图形。,则很难用上述方法绘制出图形。MATLABMATLAB提供了一个提供了一个ezplotezplot函数

39、绘制二元隐函数图形和函数绘制二元隐函数图形和ezplot3ezplot3函数绘制三元隐函数图形,下面介绍其用法。函数绘制三元隐函数图形,下面介绍其用法。1 1ezplotezplot函数函数(1 1)对于一元函数)对于一元函数f f(x x),ezplotezplot函数的调用格式为函数的调用格式为 ezplot(f,a,b)ezplot(f,a,b)在区间在区间a a x x b b绘制绘制f f(x x)的图形。的图形。a a、b b默认时,在区间默认时,在区间2 2 x x 2 2 绘制绘制f f=f f(x x)的图形。的图形。matlab计算可视化第计算可视化第三次三次4.5 4.5

40、 隐函数绘图隐函数绘图(2 2)对于二元函数)对于二元函数f f(x x,y y),ezplotezplot函数的调用格式为函数的调用格式为 ezplot(f,a,b,c,d)ezplot(f,a,b,c,d)在区间在区间a a x x b b和和c c y y d d绘制绘制f f(x x,y y)的图形。的图形。a a、b b、c c、d d默认时,在区间默认时,在区间2 2 x x 2 2 和和2 2 y y 22 绘制绘制f f(x x,y y)的图形。的图形。(3 3)对于参数方程)对于参数方程x x=funx=funx(t t)和和y y=funy=funy(t t),ezplot

41、ezplot函数的调用格式为函数的调用格式为 ezplot(x,y,a,b)ezplot(x,y,a,b)在区间在区间a a t t b b绘制绘制x x=funxfunx(t t)和和y y=funyfuny(t t)的图形。的图形。a a、b b默认时,在区间默认时,在区间0 0 t t 2 2 绘制图形。绘制图形。matlab计算可视化第计算可视化第三次三次4.5 4.5 隐函数绘图隐函数绘图【例例4.574.57】隐函数绘图应用举例。隐函数绘图应用举例。subplot(2,2,1);subplot(2,2,1);ezplot(cos(tan(piezplot(cos(tan(pi*x)

42、,0,1)x),0,1)subplot(2,2,3);subplot(2,2,3);ezplot(x2-y4)ezplot(x2-y4)subplot(2,2,2 4);subplot(2,2,2 4);ezplot(5ezplot(5*cos(5cos(5*t),4t),4*sqrt(2sqrt(2*t),0,2t),0,2*pi);pi);matlab计算可视化第计算可视化第三次三次4.5 4.5 隐函数绘图隐函数绘图2 2ezplot3ezplot3函数函数 ezplot3ezplot3函数的调用格式为函数的调用格式为 ezplot3(x,y,z,a,b)ezplot3(x,y,z,a,

43、b)对于参数方程在区间对于参数方程在区间a a t t b b绘制绘制x x=funxfunx(t t),y y=funyfuny(t t)和和z z=funzfunz(t t)的图形。未指定区间时,默的图形。未指定区间时,默认在区间认在区间0 0 t t 2 2 绘制图形。例如,绘制例的三维曲线绘制图形。例如,绘制例的三维曲线也可以采用以下命令:也可以采用以下命令:ezplot3(sin(t)+tezplot3(sin(t)+t*cos(t),cos(t)-cos(t),cos(t)-t t*sin(t),t,0,10sin(t),t,0,10*pi);pi);matlab计算可视化第计算可

44、视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作4.6.1 4.6.1 图像处理图像处理 MATLABMATLAB基本系统提供了几个用于简单图像处理的函数,基本系统提供了几个用于简单图像处理的函数,利用这些函数可进行图像的读写和显示。此外,利用这些函数可进行图像的读写和显示。此外,MATLABMATLAB还还有一个功能更强的图像处理工具箱(有一个功能更强的图像处理工具箱(Image Processing Image Processing ToolboxToolbox),可以对图像进行更专业的处理。),可以对图像进行更专业的处理。matlab计算可视化第计算可视化第三次三次4.

45、6 4.6 图像处理与动画制作图像处理与动画制作 1 1imreadimread和和imwriteimwrite函数函数 在在matlabmatlab环境下调用外部图形的函数为环境下调用外部图形的函数为imreadimread,通过,通过这个函数可以把由其他绘图软件编辑的图形转换成这个函数可以把由其他绘图软件编辑的图形转换成matlabmatlab可识别的类型。可识别的类型。函数的调用格式为:函数的调用格式为:A=imread(A=imread(fnamefname,fmtfmt)其中,其中,fnamefname为图形文件名,为图形文件名,fmtfmt为图形类型(可省为图形类型(可省略)。如果

46、图形为灰度图像,则返回值略)。如果图形为灰度图像,则返回值A A为两列矩阵;如为两列矩阵;如果图形为真色,则返回值果图形为真色,则返回值A A为三列矩阵。为三列矩阵。此处所能调用的图形文件应当在当前此处所能调用的图形文件应当在当前matlabmatlab的搜索路的搜索路径上,否则将无法识别。径上,否则将无法识别。matlabmatlab可识别的图形类型大致包括:可识别的图形类型大致包括:jpeg/jpg,tif/tiff,gif,bmp,png,hdf,pcx,xwd,ico,cur,jpeg/jpg,tif/tiff,gif,bmp,png,hdf,pcx,xwd,ico,cur,ras,p

47、bm,pgm,ppmras,pbm,pgm,ppm。matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作【例例4.584.58】读出图形数据矩阵的阶数。读出图形数据矩阵的阶数。A=imread(SDC11889.JPG);A=imread(SDC11889.JPG);size(A)size(A)ans=ans=2176 3264 3 2176 3264 3 该图对应的是一个三维数组,其中每一维该图对应的是一个三维数组,其中每一维对应基色(红、绿、蓝)中的一种,而对应基色(红、绿、蓝)中的一种,而21762176和和32643264则对应于图形的像素点

48、的分布。则对应于图形的像素点的分布。matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作 matlab matlab对应的写入图像文件的函数为对应的写入图像文件的函数为imwrite,imwrite,该函数将图像矩阵写入外部文件,其调该函数将图像矩阵写入外部文件,其调用格式为:用格式为:imwrite(A,fname,fmt)imwrite(A,fname,fmt)其中,其中,fnamefname为读为读/写的图像文件名,写的图像文件名,fmtfmt为图为图像文件格式,如像文件格式,如bmpbmp、jpgjpg、gifgif、tiftif、pngpn

49、g等。若读写的是灰度图像,则等。若读写的是灰度图像,则A A为二维矩阵;为二维矩阵;若读写的是彩色图像,则若读写的是彩色图像,则A A为三维矩阵,第三维存为三维矩阵,第三维存储颜色数据。储颜色数据。matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作 matlabmatlab语言还提供了显示图像信息的函数语言还提供了显示图像信息的函数imfinfo,imfinfo,其调用格式为:其调用格式为:imfinfo(fname,fmt)imfinfo(fname,fmt)调用该函数返回一结构型数组,该数组反映调用该函数返回一结构型数组,该数组反映图形深层次的

50、信息,对于不同的图形格式将显示图形深层次的信息,对于不同的图形格式将显示不同的图形信息,但是以下不同的图形信息,但是以下9 9中图形信息是任何格中图形信息是任何格式都有的:和式都有的:和ColorType.ColorType.matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作【例4.59】pictureinfo=imfinfo(SDC11889.JPG,jpg)pictureinfo=:SDC11889.JPG :01-Apr-2010 09:32:56 :809108 Format:jpg FormatVersion:Width:3264 Hei

51、ght:2176 BitDepth:24 ColorType:truecolor FormatSignature:Comment:matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作2 2imageimage和和imagescimagesc函数函数 在在matlabmatlab环境下显示外部图形的函数为环境下显示外部图形的函数为image,image,其调用格式为:其调用格式为:image(C)%Cimage(C)%C为为matlabmatlab读取的图形数据矩阵读取的图形数据矩阵【例例4.604.60】在图形窗口中显示外部图形文件。在图形窗口中显示

52、外部图形文件。A=imread(SDC11889.JPG);A=imread(SDC11889.JPG);image(A);image(A);axis image offaxis image offmatlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作 imshowimshow和和imagescimagesc函数也是用于显示图像。函数也是用于显示图像。imagescimagesc函数可以按照指定的色图显示灰度图像,函数可以按照指定的色图显示灰度图像,色图可以

53、通过色图可以通过colormapcolormap函数设置。函数设置。【例例4.614.61】load clownload clownclims=10 60;clims=10 60;imagesc(X,clims)imagesc(X,clims)colormap(gray)colormap(gray)matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作4.6.2 4.6.2 动画制作动画制作 MATLABMATLAB具有动画制作能力,它可以存储一系具有动画制作能力,它可以存储一系列各种类型的二维或三维图,然后像放电影一样列各种类型的二维或三维图,然后像

54、放电影一样把它们按次序播放出来,称为逐帧动画。一种明把它们按次序播放出来,称为逐帧动画。一种明显的动画类型是取出一幅三维图形,然后缓慢地显的动画类型是取出一幅三维图形,然后缓慢地将它旋转,这样就可以从不同角度来观察它。另将它旋转,这样就可以从不同角度来观察它。另一种类型是在描绘质点运动轨迹的动画,称为轨一种类型是在描绘质点运动轨迹的动画,称为轨迹动画。迹动画。matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作1 1创建逐帧动画创建逐帧动画 MATLABMATLAB提供提供getframegetframe、movieinmoviein和和moviem

55、ovie函数进函数进行逐帧动画制作。创建逐帧动画包括两个步骤。行逐帧动画制作。创建逐帧动画包括两个步骤。(1 1)用)用getframegetframe函数截取画面信息(一幅画面称为函数截取画面信息(一幅画面称为动画中的一帧)。动画中的一帧)。(2 2)movie(M,n)movie(M,n)函数播放由矩阵函数播放由矩阵M M所定义的画面所定义的画面n n次,次,默认时播放一次。矩阵默认时播放一次。矩阵M M用来保存用来保存n n幅画面的数据,幅画面的数据,每列存储一帧画面信息,以备播放。每列存储一帧画面信息,以备播放。matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画

56、制作图像处理与动画制作【例例4.624.62】绘制一个水平放置的瓶状柱面,并且将它绕绘制一个水平放置的瓶状柱面,并且将它绕z z轴轴旋转。旋转。t=0:pi/20:2t=0:pi/20:2*pi;pi;x,y,z=cylinder(2+sin(t),30);x,y,z=cylinder(2+sin(t),30);mesh(z,y,x)mesh(z,y,x)axis off;axis off;shading interp;shading interp;colormap(hsv);colormap(hsv);for k=1:20for k=1:20 view(-37.5+18 view(-37.5

57、+18*(k-1),30)(k-1),30)%改变视点改变视点 M(k)=getframe;M(k)=getframe;%将图形保存到将图形保存到m m矩阵矩阵endendmovie(M,2);movie(M,2);%播放画面播放画面2 2次次matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作2 2创建轨迹动画创建轨迹动画 MATLABMATLAB中提供了中提供了cometcomet和和comet3comet3函数展现质函数展现质点在二维平面和三维空间的运动轨迹,其调用格点在二维平面和三维空间的运动轨迹,其调用格式为式为comet(x,y,p)co

58、met(x,y,p)comet3(x,y,z,p)comet3(x,y,z,p)其中,每一组其中,每一组x x、y y、z z组成一组曲线的坐标组成一组曲线的坐标参数,用法与参数,用法与plotplot和和plot3plot3函数相同。选项函数相同。选项p p用于用于设置绘制的彗星轨迹线的彗长,彗长为设置绘制的彗星轨迹线的彗长,彗长为p p倍倍y y向量向量的长度。的长度。matlab计算可视化第计算可视化第三次三次4.6 4.6 图像处理与动画制作图像处理与动画制作【例例4.634.63】生成例的图形轨迹。生成例的图形轨迹。t=0:pi/250:10t=0:pi/250:10*pi;pi;x

59、=sin(t)+t.x=sin(t)+t.*cos(t);cos(t);y=cos(t)-t.y=cos(t)-t.*sin(t);sin(t);comet3(x,y,t);comet3(x,y,t);matlab计算可视化第计算可视化第三次三次本本 章章 小小 结结plotplot函数:函数:两个纵坐标标度的函数两个纵坐标标度的函数plotyy:plotyy:设置曲线样式设置曲线样式:线型,颜色,标记符线型,颜色,标记符图形标注与坐标控制图形标注与坐标控制titletitle(图形名称)(图形名称)xlabelxlabel(x x轴说明)轴说明)ylabelylabel(y y轴说明)轴说明

60、)texttext(x x,y y,图形说明),图形说明)gtext(gtext(函数名函数名,属性,属性值)属性,属性值)legendlegend(图例(图例1 1,图例,图例2 2,)matlab计算可视化第计算可视化第三次三次本本 章章 小小 结结图形控制图形控制p坐标轴的控制函数坐标轴的控制函数axisaxis:axis(v),axis:axis(v),axis 控制字符串控制字符串p坐标轴缩放函数坐标轴缩放函数zoomzoom:zoomzoom控制字符串控制字符串p平面的坐标网图函数平面的坐标网图函数gridgridp坐标轴封闭函数坐标轴封闭函数boxbox对函数自适应采样的绘图函数

61、对函数自适应采样的绘图函数 fplot(fname,lims,tol,fplot(fname,lims,tol,选项选项)多图形显示多图形显示 图形窗口的分割:图形窗口的分割:subplot(m,n,p)subplot(m,n,p)图形叠加图形叠加 hold on/offhold on/offmatlab计算可视化第计算可视化第三次三次本本 章章 小小 结结其他坐标系其他坐标系对数坐标图形对数坐标图形(semilogx,semilogy,loglog)极坐标图极坐标图(polar(theta,rho,选项选项)二维特殊函数图形二维特殊函数图形条形图条形图(bar,barh):bar(x,wid

62、th,style)bar(x,width,style):饼图:饼图:pie(x,explode)散点图:散点图:scatter(x,y,s,c,filled)实心图:实心图:fill(x1,y1,选项选项1,x2,y2,选项选项2,)复数向量图:复数向量图:compass(z)compass(z)或或compass(u,v)compass(u,v)featuher(z)featuher(z)或或faether(u,v)faether(u,v)等高线图:等高线图:contour(z,n/v);contour(x,y,z,n/v)matlab计算可视化第计算可视化第三次三次本本 章章 小小 结结三

63、维曲线三维曲线 plot3(x,y,z)plot3(X,Y,Z)plot3(X,Y,Z,s):plot3(x1,y1,z1,s1,x2,y2,z2,s2,plot3(x1,y1,z1,s1,x2,y2,z2,s2,xn,yn,zn,sn,xn,yn,zn,sn三维曲面三维曲面网图函数:网图函数:X,Y=meshgrid(x,y):X,Y=meshgrid(x,y):函数函数meshmesh:Mesh(X,Y,Z,C)Mesh(X,Y,Z,C),mesh(X,Y,Z)mesh(X,Y,Z)函数函数meshcmeshc:函数函数meshzmeshz:着色函数:着色函数:surfsurf(X X,Y

64、 Y,Z Z,C C)特殊的三维图形函数:(特殊的三维图形函数:(pie3(x,explode),surfc(X,Y,Z);pie3(x,explode),surfc(X,Y,Z);contour3;peakscontour3;peaks函数函数;cylinder;cylinder函数函数;sphere;sphere函数函数;bar3;bar3和和bar3hbar3h函函数数;三维多边形函数三维多边形函数fill3;fill3;瀑布图函数瀑布图函数waterfall;trimeshwaterfall;trimesh函数函数;三角三角形刻面图函数形刻面图函数trisurf;slice(trisu

65、rf;slice(,methodmethod)matlab计算可视化第计算可视化第三次三次本本 章章 小小 结结 图形修饰处理图形修饰处理视点处理视点处理(view(az,el)(view(az,el)函数函数viewmtxviewmtx给出指定视角的正交转换矩阵给出指定视角的正交转换矩阵函数函数rotate3drotate3d色彩处理色彩处理(颜色向量表示,色图(颜色向量表示,色图(colormap(m)colormap(m),pcolorpcolor(c),c),rgbplot(colormap),rgbplot(colormap),及及colorbar(colorbar(vertvert

66、),colorbar(),colorbar(horizhoriz)三维表面图形的着色的函数:三维表面图形的着色的函数:shading shading 选项选项对颜色映像的色彩强弱进行调整的函数:对颜色映像的色彩强弱进行调整的函数:brighten(beta)brighten(beta)matlab计算可视化第计算可视化第三次三次本本 章章 小小 结结控制图形中颜色显示的范围以及色彩与数值的对应关系的函数:控制图形中颜色显示的范围以及色彩与数值的对应关系的函数:caxis(cmin,cmax)caxis(cmin,cmax)cmin,cmax=caxis cmin,cmax=caxis背景颜色进行操作的函数:背景颜色进行操作的函数:colordefcolordef灯光设置函数灯光设置函数:light(light(属性属性,选项选项)光源模式函数为光源模式函数为lightinglighting:lighting lighting 光源模式光源模式图形表面的控制函数图形表面的控制函数materialmaterial:materialmaterial表面控制模式表面控制模式 surflsurf

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!