IDL培训对象图形篇PPT.ppt
《IDL培训对象图形篇PPT.ppt》由会员分享,可在线阅读,更多相关《IDL培训对象图形篇PPT.ppt(30页珍藏版)》请在三一办公上搜索。
1、IDL 高级培训对象图形篇,对象图形篇 概述,Basic 对象图形是IDL引入面向对象编程概念后出现的。面向对象编程的基础是对象类的使用。对象类允许程序员将数据和方法封装成为一个包,称之为对象。一个对象类可以反复使用而每次使用都封装不同的数据。IDL里对象类的实现主要是用一组预建的对象类构成对象图形系统。对象图形系统是一个IDL内建的对象类库,可用于创建场景。对象类也可以用IDL编写以实现程序员自己的要求。程序员可以在IDL环境中用传统的过程和函数的编写方法加上对象特性编写自己的对象模块。,对象图形篇 概述,Direct Graphics vs.Object GraphicsDirect Gr
2、aphics:创建2D图形有优秀表现,如:X-Y plot,contours,mapping等 可以在命令行使用,简单、快速 图形创建命令通常连同坐标系一起创建 图形生成时,针对当前图形设备 图形生成并输出后,不可修改或再用。如果需要修改或向其他设备输出,必须重新输出。后输出的项目总在先输出的项目的“上面”Object Graphics:硬件加速的3D场景显示,灵活,交互性强 对象图形系统主要以程序方式使用 图形对象是功能性封装的。即独立的对象包含自己的方法,操作自己的数据 图形输出没有当前设备的概念,图形对象为层次结构,并使用输出目标概念 图形创建后,数据及其属性驻留内存,便于修改,反复使用
3、 对象图形驻留内存,因此在退出时要释放内存,避免内存泄漏,对象图形篇 内容,LIVE_TOOLS工具集 一组预建的IDL组件应用程序,使用IDL的对象图形系统,可以构造高质量的可交互的场景 每一个LIVE工具既可以做为单独的应用程序使用,也可以做为组件用于编程 LIVE工具可以既可以使用鼠标操纵,也可以编程操纵图形对象系统(IDLxxYyyy)一组预建的对象类,可用于构造高质量的2D、3D场景 使用最新的图形硬件加速技术 采用灵活的结构,可以多场景输出 使用IDL的过程或函数构造图形对象的层次结构 图形创建后,场景可以很容易操纵、修改创建自己的图形对象类 利用IDL的面向对象编程概念和方法,程
4、序员可以创建自己的对象类,对象图形篇 LIVE_TOOLS,LIVE_TOOLS共有15个例程,包括创建图形、图形文件输出、打印输出、标注以及控制。,对象图形篇 LIVE_TOOLS,Stand-Alone LIVE Tools LIVE_PLOT,LIVE_CONTOUR,LIVE_SURFACE,LIVE_IMAGE 完整的IDL组件例程,窗口调整、属性设置均可通过鼠标操纵。可以从命令行直接运行。sincurve=sin(findgen(360)*!dtor)live_plot,sincurve 可以通过调用时设置关键字参数,调整交互界面 live_plot,sincurve,/no_to
5、olbar,/no_statusLIVE_OPLOT 向已经创建的LIVE窗口中叠加,只有适合已有坐标系的数据才会加入 sincurve=sin(findgen(360)*!dtor)live_plot,sincurve for i=0.9,0.1,-0.1 do live_oplot,sincurve*I,对象图形篇 LIVE_TOOLS,Multiple LIVE Tools and LIVE_OPLOT 完当同时启动多个LIVE时,LIVE_OPLOT就不知道应该向哪一个窗口叠加。REFERENCE_OUT=ref 返回窗口信息,结构数据。其中win字段即为窗口标识。WINDOW_IN=
6、ref.win 指定叠加的窗口 sincurve=sin(findgen(360)*!dtor)live_plot,sincurve,reference_out=ref for i=0.9,0.1,-0.1 do live_oplot,sincurve*i,window_in=ref.win x=1.2,2.0,7.7,4.5,23.4 y=3.0*x+2.0 new_x=3.9,6.9,12.0,15.6 new_y=interpol(x,y,new_x)pProps=color:Light Blue,linestyle:2,symbol_size:0.05,symbol_type:2 pS
7、tyle=live_style(plot,GRAPHIC_PROPERTIES=pProps)live_plot,y,INDEPENDENT=x,REFERENCE_OUT=refout2,STYLE=pStyle live_oplot,new_y,INDEPENDENT=new_x,WINDOW_IN=refout2.win,对象图形篇 LIVE_TOOLS,LIVE_STYLE(contour|image|plot|surface,)设置LIVE的窗口风格。可以创建一个包括所有输出窗口的图形属性的结构数据,然后传给所有准备创建的LIVE。IDL的灵活的结构数据的特点使得每一个LIVE只保留
8、与之相关的字段值并修改之。a=findgen(40)a=sin(a/5)/exp(a/50)wave=a#a gp=bottom:Blue,color:Brown,shading:1,style:2 surfstyle=live_style(surface,GRAPHIC_PROPERTIES=gp)live_surface,wave,STYLE=surfstyle,对象图形篇 LIVE_TOOLS,Multiple Plots in One Window 通过设置图形在窗口中的位置和大小,可以实现在一个窗口中同时显示多个图形。LOCATION:图形在窗口中的位置,normal坐标DIMENS
9、ION:图形显示的大小,normal坐标 a=findgen(40)a=sin(a/5)/exp(a/50)wave=a#a live_image,wave,REFERENCE_OUT=refout,$LOCATION=0.0,0.5,DIMENSIONS=1.0,0.5 live_contour,wave,WINDOW_IN=refout.win,$LOCATION=0.0,0.0,DIMENSIONS=0.5,0.5 live_surface,wave,WINDOW_IN=refout.win,$LOCATION=0.5,0.0,DIMENSIONS=0.5,0.5,对象图形篇 LIVE_
10、TOOLS,LIVE Annotations LIVE_TEXT,LIVE_RECT,LIVE_LINE 这些工具可以为一个已创建的LIVE在窗口内的任意位置添加标注。并可以在添加以后仍然可以通过鼠标操纵修改。normal坐标。data=alog10(findgen(100)+1)live_plot,data,REFERENCE_OUT=refout live_text,对数曲线,WINDOW_IN=refout.win,$LOCATION=.5,.9,ALIGNMENT=0.5,$FONTNAME=隶书,FONTSIZE=18,COLOR=Blue live_rect,WINDOW_IN=r
11、efout.win,COLOR=Light Green,$LOCATION=.2,.87,DIMENSION=.6,.1 live_line,WINDOW_IN=refout.win,$LOCATION=.2,.05,DIMENSION=.6,0,$/ARROW_START,/ARROW_END,对象图形篇 LIVE_TOOLS,LIVE_DESTROY,/ENVIRONMENT 关闭所有LIVE,释放所有与之相关的内存。LIVE_DESTROY,WINDOW_IN=ref.win,关闭ref.win指定的LIVE或其中的图形元素。灵活使用REFERENCE_OUT和WINDOW_IN,就可以
12、去掉窗口内的指定图形元素。data=alog10(findgen(100)+1)live_plot,data,REFERENCE_OUT=refoutlive_text,对数曲线,LOCATION=.5,.9,ALIGNMENT=0.5,$FONTNAME=隶书,FONTSIZE=18,COLOR=Blue,$WINDOW_IN=refout.winlive_rect,LOCATION=.2,.87,DIMENSION=.6,.1,$COLOR=Light Green,WINDOW_IN=refout.winlive_line,LOCATION=.2,.05,DIMENSION=.6,0,$W
13、INDOW_IN=refout.win,/ARROW_START,/ARROW_END;add a line that will be destroyedlive_line,LOCATION=.5,.5,DIMENSIONS=0.0,.25,$WINDOW_IN=refout.win,REFERENCE_OUT=linerefoutwait,3live_destroy,linerefout.graphic,WINDOW_IN=refout.winwait,3live_destroy,refout.graphicwait,3live_destroy,WINDOW_IN=refout.win,对象
14、图形篇 LIVE_TOOLS,Embedded LIVE Tools 除可以做为独立的例程使用之外,LIVE工具可以嵌入到IDL组件程序中,不仅保持原有的功能,还与IDL的其他组件共同使用,PARENT_BASE LIVE_TOOLS,PARENT_BASE=base_id 在应用程序中使用LIVE,通常为LIVE创建一个BASE将其嵌入。Event Handling 在widget的用户数据里,通常必须保存LIVE的ref,这样在整个程序运行期间就可以根据事件的需求对LIVE进行控制。LIVE_CONTROL 在事件处理程序中,所有需要对LIVE进行控制的请求都通过LIVE_CONTROL实
15、现。其功能类似widget_control。特别注意:任何时刻需要更新LIVE的数据时,只能用一个与初始化该LIVE时的数据变量同名的变量来传递数据。LIVE_INFO 用于获取指定的LIVE的属性,返回一个结构数据。功能类似widget_info。LIVE_DESTROY 当widget结束时,必须将LIVE释放。,对象图形篇 对象图形类(IDLgrYyyy),概述 IDL的对象图形系统是一个内建的对象类库,通过选择适当的内建对象、构造层次结构来创建图形场景。层次结构描述各种图形元素在3D中的层次以及各层之间的关系。IDL的图形对象类命名方式为IDLgrYyyy,其中Yyyy标识类的名称。I
16、DL的图形对象类如下:Container Objects:IDLgrScene,IDLgrView,IDLgrModel IDLgrViewgroup,IDL_Container Graphical Atom Objects:IDLgrPlot,IDLgrPolyline,IDLgrPloygon,IDLgrContour,IDLgrSurface,IDLgrVolume,IDLgrImage,IDLgrAxis,IDLgrText,IDLgrLight Destination Objects:IDLgrWindow,IDLgrPrinter,IDLgrBuffer,IDLgrClipboar
17、d,IDLgrVRML Attrigute:(outside the hierarchy,be used when rendering graphic objects)IDLgrFont,IDLgrPalette,IDLgrSymbol Helper:(outside the hierarchy,alter data in useful ways or provide other services)IDLgrTessalator,Trackball Composite Objects:IDLgrColor,IDLgrLegend,对象图形篇 对象图形类(IDLgrYyyy),The Objec
18、t Graphics Hierarchy,对象图形的层次结构,对象图形篇 对象图形类(IDLgrYyyy),Create Hierarchy 对象图形场景必须以层次结构创建。基本的层次结构创建如下:1.Creation of an IDLgrView object 2.Creation of an IDLgrModel object 3.Creation of a Graphical Atom 4.Add the Model to the View 5.Add Graphical Atom(s)to the Model 6.Creating a Destination Object 7.Dra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IDL 培训 对象 图形 PPT
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6508034.html