第六章 高级图形处理功能_第1页
第六章 高级图形处理功能_第2页
第六章 高级图形处理功能_第3页
第六章 高级图形处理功能_第4页
第六章 高级图形处理功能_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章高级图形处理功能目的:1、更深入地理解高层绘图指令,从而可绘制出更精细、更生动、更个性的图形;2、能利用低层图形指令和图形对象属性开发专用绘图函数。一、图形对象与句柄

(一)句柄图形体系句柄图形(HandleGraphics)是一种面象对象的绘图系统。该系统提供创建计算机图形所必需的各种软件。它所支持的指令,可直接创建线、文字、网线、面以及图形用户界面。第五章所介绍的各种MATLAB高层(High-level)图形指令(如plot,mesh)都是以句柄图形软件为基础写成的。也正是这个原因,句柄图形也被称为低层(Low-level)图形。图形对象、对象句柄、句柄图形树结构1、图形对象把用于数据可视和界面制作的基本绘图要素称为句柄图形对象(Handlegraphicsobject)。构成MATLAB句柄图形体系的13个图形对象见P136/图6-1。每个图形对象可以被独立地操作。在MATLAB中生成的每个具体图形都由若干不同对象构成。每个具体图形不必包含全部对象,但每个图形必须具备根对象(根屏幕)和图形窗。2、对象句柄每个具体对象都有一个“与生俱来、终生不变”的独特“身份(Identifier)”,即句柄(Handle)。句柄是存取图形对象唯一规范识别符。不同对象的句柄不可能重复和混淆。每个计算机,根对象只有一个,即屏幕。它的句柄总是数字0。而图形窗(FigureWindows)的句柄总是正整数,它用来标识图形窗的序号。除以上两种对象外,其余对象的句柄则是双精度浮点数。注意:对根屏幕、图形窗对象来说,数字可直接作为调用对象的句柄。但不要企图通过直接输入浮点数,作为其他对象的句柄;这些对象的句柄只能由相关指令运作而得。3、句柄图形树结构在句柄图形体系中,各图形对象并不平等,它们之间的关系可用P136/图6-1的树结构层次表示。对象属性1、属性:所有对象都有一组定义和刻画其外貌和性状的属性(Properties)。属性由两部分组成:属性名和属性值,即二元对(Property-Name,Property-Value)在创建或修改属性的指令中,属性名和属性值总是成对出现。属性名是英文词组字符串。该英文词组每个单词的第一个字母大写,而单词间没有空格,例如’LineStyle’,’ColorMap’等。在指令中援引属性名时,为输入方便,MATLAB采取了两个措施:不分字母大小写,都同样识别;只要不引起歧义,属性名不必写全。比如’lines’就代表’LineStyle’.不同的属性值将使对象具有不同的表现。2、缺省属性在创建图形对象时,MATLAB并不需要对每个属性加以定义。若用户不对属性加以定义,MATLAB总会自动给对象的每个属性赋予“厂家定义(Factory-defined)”的属性值。若希望创建具有个性的图形,就需要通过指令对某些属性进行定义。属性值的这种定义方式称为“宗量”赋值方式。(二)图形对象的操作除根屏幕外,所有图形对象都由与之同名的指令创建。创建对象的低层指令(1)指令名功能调用格式举例figure创建图形窗h=figure(n)n为正整数。打开或创建第n号图形窗axes创建轴h=axes(‘position’,[left,bottom,width,height])

定义坐标盒的位置和尺寸line创建线h=line(x,y,z)绘制向量x,y,z确定的直线。如果不指定z,则在x-y平面上画线surface创建面h=surface(x,y,z,c)x,y,z定义三维曲面,c是色彩矩阵。创建对象的低层指令(2)指令名功能调用格式举例rectangle创建方h=rectangle(’position’,[x,y,w,h],’curvature’[xc,yc])x,y左下顶点坐标,w,h长方形的高和宽;xc,yc曲率patch创建块h=patch(’faces’,fac,’vertices’,vert)

vert为顶点矩阵,fac为定义多边形的顶点序号矩阵image创建象h=image(x)x为图像数据矩阵text创建字h=text(x,y,’string’)x,y指定字符串string的标注位置light创建光h=light(’position’,[100])

设置入射光的方向。它影响面、块对象的渲染uicontrol创建用户界面控件h=uicontrol(’property’,value)property/value指定界面的控件类型uimenu创建用户界面菜单h=uimenu(’property’,value)property/value指定图形窗口上方的菜单行式对象句柄的获取方法要设置图形对象属性值,首先要知道该对象的句柄。1、基本方法从图形创建指令获得句柄追溯法获取图柄当前对象句柄的获取根据对象特性获取句柄根据对象“诨名”获取句柄2、句柄获取示例从图形创建指令获得句柄所有高层或低层指令(在此用GraphicCommand表示)都能通过以下格式产生句柄:H_GC=GraphicCommand(…)

绘图同时给出句柄的调用指令H_GC。追溯法获取图柄若一个对象的句柄已知,那么可用如下格式追溯获得其“父”或“子”的句柄:H_pa=get(H_known,’Parent’)

获取H_known句柄对象之“父”的句柄。H_ch=get(H_known,’Children’)

获取H_known句柄对象之“子”的句柄。当前对象句柄的获取MATLAB有如下三个专用获取图柄的指令:前两个是直接指令式;后一个必须与鼠标配合使用。gcf 返回当前图形窗口的句柄gca 返回当前轴的句柄gco 返回“被鼠标最近点击”的图形对象的句柄根据对象特性获取句柄利用对象特性搜索那对象句柄可以得到较高的搜索速度。具体指令如下:H=findobj(H_ori,PN,PV)

在H_ori指定对象上,寻找与属性对 (PN,PV)匹配的对象句柄根据对象“诨名”获取句柄可以通过’Tag’属性,给对象一个“诨名”。此后,就可以通过“诨名”获取该对象的句柄。设置“诨名”的两个方法:创建时赋名,如subplot(3,2,4),plot(x,y,’Tag’,’A4’);用set赋名,如subplot(3,2,4),h=plot(x,y),set(h,’Tag’,’A4’)据诨名获取对象句柄:如果屏幕上有多个图形窗,且有的窗又有多个子图,那么获取带“诨名”对象句柄的简便指令是:hax=fidobj(0,’Tag’,’A4’)。(三)对象属性的获取和设置创建对象时设置属性H_GC=GraphicCommand(……,PN,PV)

利用“属性对”设置的绘图指令H_GC=GraphicCommand(……,PS)

利用“构架”进行属性设置的绘图指令get和set对象属性的缺省设置和查询属性查询和设置示例get和setget(H)

获取H句柄对象所有属性的当前值get(H,PN) 获取H句柄对象由PN所指定属性的当前值set(H)

显示H句柄对象的所有可设置属性名和全 部供选属性值set(H,PN) 显示H句柄对象PN指定属性名的全部供选 属性值set(H,PN,PV,…)设置H句柄对象的PN属性名取PV

属性值set(H,PS) 利用构架数组设置H的属性值对象属性的缺省设置和查询get(H,’DefaultObjectTypeObjectProperty’)

获取缺省值set(H,’DefaultObjectTypeObjectProperty’,propertyValue)

设置“用户定义”缺省值set(H,’DefaultObjectTypeObjectProperty’,’remove’)

删除“用户定义”缺省值二、三维图形的精细控制

视点控制色彩控制照明和材质处理(一)视点控制改变观察点是获得较好三维视觉效果的一个重要途径。view([az,el])

通过方位角、俯视角设置视点view([vx,vy,vz])

通过直角坐标设置视点说明:指令中,az是方位角(Azimuth),el是俯视角(Elevation)。它们的单位是“度”。vx,vy,vz是视点的直角坐标。若绘制三维图形时,不使用view指令,那么MATLAB将使用缺省的视点设置:az=-37.5°,el=30°。当az=0°,el=90°时,图形将以习惯的平面直角坐标表现。MATLAB图形窗可交互式调节视点。为获得最佳视觉效果,用户先通过鼠标操作调节视点,然后再用指令view把相应的试点加以固定。(二)色彩控制用色风格colordef色图colormap浓淡处理shading透明度控制

alpha用色风格colordefcolordefoptions 对根屏幕上的所有子对象设置缺省值colordef(fig,options) 对图形窗fig上的所有子对象设置缺省值h=colordef(‘new’,options) 对新图形窗上的所有子对象设 置缺省值whitebg 使当前图形窗上“轴”的背景色在黑白间切换whitebg(fig) 使指定图形窗上“轴”的背景色在黑白间切换whitebg(C) 使当前图形窗上“轴”的背景色变为指定的颜色说明:MATLAB默认的“轴背景色”为white。Options的取值及缺省设置见下表:options轴背景色图背景色轴标色色图画线用色次序white白淡灰黑jet蓝、深绿、红、青、洋红、黄、黑black黑黑白jet黄、洋红、青、红、淡绿、蓝、淡灰色图colormap

(P123)两种基本着色技术:变址色彩法(Indexedcoloring):先把每个数据点变换为色图中的某索引号,使数据点在具体色图中获得该索引号所代表的一种颜色;然后再依据这些数据点颜色,由“浓淡处理(shading)”模式推出曲面上其他点的用色。真采法(Truecoloring):每个数据点直接用RGB三元组指定颜色。至于曲面其他点的色彩,与变址法一样,按指定的“浓淡处理”模式算得。RGB三元组:一种色彩用[RGB]基色三元行数组表示。数组元素R、G、B在[0,1]区间取值,分别表示红、绿、蓝基色相对亮度。通过对R,G,B大小的设置,可调制出不同颜色。P124/表5-4给出一些常用颜色对应的三元数组的具体取值。色图矩阵和色图(色彩映射表):P124/表5-5浓淡处理shading(P122)shadingoptions 图形对象着色的浓淡处理说明:mesh,surf,pcolor,fill和fill3所创建图形非数据点处的着色由shading指令决定。指令的选项options可取以下三中方式:flat

网线图地谋整条线段,或曲面图的某整个贴片都着一种颜色。颜色取自该线段两端,或该贴片四顶点数据中下标最小那点的颜色。interp

网线图线段,或曲面图贴片上各点的颜色由该线段两端,或该贴片四顶点初的颜色经线性插值而得。这种方法的用色较细腻,但最费时。faceted

在flat用色基础上,再在贴片的四周勾画黑色网线。这种方法对立体的表现力最强,因此MATLAB把它作为缺省设置。shading

是设置当前轴上面对象的EdgeColor和FaceColor属性的高层指令。例:三种浓淡处理方式比较

透明度控制

alphaalpha(v)

对面、块、象三种图形对象的透明度加以控制说明:v可以取0到1之间的数值。0表示完全不透明,1表示完全透明。本指令对mesh,surf,slice等高层指令都适用。例:半透明的表面图

(三)照明和材质处理灯光light照明模式lighting控制光效果的材质指令material灯光lightlight(‘color’,option1,’style’,option2,’position’,option3)

灯光设置说明:在该指令使用前,图形采用的是等强度各处相等的漫射光。一旦该指令被执行,虽然光源本身并不出现,但图形上“轴”、“面”等子对象所有与光有关的属性(如背景光、边缘光)都被激活。假如该指令不包含任何输入宗量,则采用缺省设置:白光、无穷远、穿过[1,0,1]射向坐标原点。任何一个输入宗量对都可缺省,此时采用缺省设置。option1

可采用RGB三元组或相应的色彩字符,如[100]或‘r’都代表红光。option2

有两个取值:‘infinite’和‘local’。前者表示无穷远光,后者为近光。option3

总为直角坐标的三元组形式。对远光,它表示光线穿过该点射向原点;对近光,它表示光源所在位置。照明模式lightinglightingoptions

设置照明模式说明:该指令只有在light指令执行后才起作用。options有以下四种取值:flat

射入光均匀洒落在图象对象的每个面上, 主要与facted配用。它是缺省模式。gouraund 先对顶点颜色插补,再对顶点勾画的面色 进行插补。用于曲面表现。phong 对顶点处法线插值,再计算个像素的反光。 表现效果最好,但费时较多。

温馨提示

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

评论

0/150

提交评论