- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12IDL入门教程九
第九章 编写 IDL 程序
本章概述
尽管IDL是一个程序语言,但在官方的IDL文档里是不可能发现如何编写IDL程序的方法。当然,这并不意味着只有一个正确的方法。任何人,只要了解过那些和我一样的IDL程序员,都知道一个优秀的IDL程序员和一个不是那么优秀的程序之间的差距是很明显的。作为和IDL程序初学者长期打交道的人,作者见过了很多不是很好的程序。
出现这个问题,可以肯定是由于对IDL信息缺乏了解。因为大多数这样的人毕竟是科学家,而不是电脑程序员。他们很聪明,并且在干自己的本行,但他们并不是去编写优秀的电脑程序。
如果只要遵循几条基本的原理,他们编写的程序就会出色,而且对他们自己也更有用。因此,本章就是阐述这几个原理。
本章的任务就是展示怎样编写一个合理的复杂图形演示程序。而且这个程序能从IDL命令行上调用。同时也希望该程序能够将数据显示在可改变大小图形窗口中,从IDL命令行上直接打印,或者直接传送到PostScript文件中。此外,这个程序能够轻松将数据文件保存成GIF或JPEG文件。即使这写程序采用不同的颜色,这个程序应该是具有颜色敏感功能,而且能够和其他程序共存。而且,在程序中增加一个图形界面应该很简单,即使那些对该程序一知半解的用户也可以容易掌握。
再者,这个程序应该维护简单,易扩展。简而言之,该程序应当以模块化方式来编写。尽管可能不清楚为什么要这样做,这里还是有必要介绍以一下面向对象编程的概念,特别是自身模块和方法的概念。如果已经了解这个程序的原理 ,那么就能够毫无困难地理解在IDL5中引进的对象类和方法方面的复杂知识。
基本的ImageBar程序
这个基本程序的思路很简单,即显示图像,在图像周围显示坐标轴。并在此图像的上方绘制一个颜色栏,用来表示图像色彩与其值的相关性。将这个程序取名为Imagebar。结果与图80相似。
图片82:此程序显示了一个由轴环绕的图象,图象上方的色彩栏标出了图像值的范围。
这个程序的基本框架很简单。图像用一个类似于 Tvimage 的命令来显示。(程序Tvimage,如果带关键字Position就可用来定位显示图像。此外,它还可以根据图像输出设备的不同而输出不同大小的图像。详细信息请参阅72页的“用标准化坐标来定位图像”。)坐标轴是用带关键字 NoData 的Plot命令绘制,色彩栏用 Colorbar命令显示的。(程序Coloebar是并与本书配套使用的程序之一。)
注意,如果是在24位颜色环境中运行这个程序,色彩分解应处于关闭状态。详细信息请参阅87页的“在24位颜色环境中指定分解颜色”。要使颜色分解处于关闭状态,键入:
IDLDevice, Get_Visual_Depth=thisDepth
IDLIF thisDepth GT 8 THEN Device, Decomposed=0
如果愿意,也可将上述代码添加到下面的Imagebar程序中。
新建一个文本编辑窗口,并且给程序命名为ImageBar。其定义如下所示:
PRO ImageBar, image
其中,image是要显示的二维图像。
作者喜欢编写简单易懂程序,即使那些不清楚程序如何工作的用户也能够看懂。如果那样,即使用户不知道要将图像作为程序的第一个参数,程序也可以让用户有机会打开并读取一个图像文件。
编写这个程序的目的之一就是能够在 Z图形缓冲区或在PostScript文件中输出显示图形。那两个图形输出设备既不支持窗口,也不支持组件程序。因此,程序要生成一个命令,类似于Window或一个在支持窗口的图形设备中创建窗口的命令。
为达到这个目的,可以使用!D.Flags系统变量。如果在这个变量的第八位的值不为0,那么当前图形设备就支持窗口。用256和这个系统变量进行逻辑AND运算,如果返回值为0,那么当前的图形设备就不支持窗口。
这些代码让用户有机会在支持窗口的图形设备上打开图像文件。从这个意义上说,参数image可以说是一个可供选择的参数。如果设置不支持窗口,参数image就是一个必须的参数了。增加了逻辑判断的代码如下:
IF N_Params( ) EQ 0 THEN BEGIN
IF (!D.Flags AND 256) NE 0 THEN BEGIN
Image = GetImage ( Cancel= canceld, ‘m51.dat’,$
Xsize=340,Ysize=440)
IF CANCELD then return
ENDIF else begin
Message, ‘Please supply an image argument,’,/Continue
RETURN
ENDELSE
ENDIF
注意,GetImage 命令用来打开图像文件。
您可能关注的文档
- 03IDL入门教程二(下)(简单图形显示I).doc
- 02IDL入门教程二(上)(简单图形显示II).doc
- 04IDL入门教程三(上).doc
- 01IDL入门教程一.doc
- 05IDL入门教程三(下).doc
- 07IDL入门教程五.doc
- 08IDL入门教程六.doc
- 10IDL入门教程七(下).doc
- 11IDL入门教程八.doc
- 14IDL入门教程十一.doc
- 2025年烟台市正大城市建设发展有限公司招聘工作人员12名笔试参考题库附带答案详解.doc
- 2025年衢州市属国企公开招聘工作人员笔试参考题库附带答案详解.doc
- 2025中铁四局集团有限公司法律合规部公开招聘1人笔试参考题库附带答案详解.docx
- 2025中国建筑股份有限公司岗位招聘【人力资源部(干部人事部)】笔试参考题库附带答案详解.docx
- 2025年滁州定远县中盐东兴盐化股份有限公司招聘2人笔试参考题库附带答案详解.doc
- DB1331T109-2025雄安新区建设工程抗震设防标准(963.84KB)(1).pdf
- 2025辽宁省能源控股集团所属抚矿集团招聘76人笔试参考题库附带答案详解.pdf
- 2024陕西延长石油集团华特新材料股份有限公司社会招聘8人笔试参考题库附带答案详解.pdf
- 2023内蒙古大唐国际锡林浩特矿业有限公司采煤自营专项社会招聘32人笔试参考题库附带答案详解.pdf
- 2024年12月云南大学国际合作与交流处公开招聘(1人)笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
最近下载
- 注册安全工程师中级其他安全生产专业实务(其他安全类案例)模拟试卷5.pdf VIP
- 2025低压分布式光伏入网技术规范.docx VIP
- GB生产设备安全卫生设计总则.doc VIP
- 产教融合、校企合作——黄淮学院的探索与实践.ppt VIP
- 注册安全工程师中级其他安全生产专业实务(其他安全类案例)模拟试卷9.pdf VIP
- 《呼吸防护用品 自吸过滤式防颗粒物呼吸器》GB 2626-2019-2020.7.1.docx VIP
- 危险货物包装标志.docx VIP
- 地下水质量标准GB148482017.docx VIP
- 《心理学史教学大纲.doc VIP
- GBT-用于校准表面污染监测仪的参考源 α、β和光子发射体及编制说明.pdf VIP
文档评论(0)