ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:159.81KB ,
资源ID:20065793      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20065793.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IDL入门教程7下Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IDL入门教程7下Word文件下载.docx

1、 image=LoadData(7)注释:image是字节型的大小为360*360的数组 Set_Plot, PSIDL Device, XSize=2, Ysize=2, /Inches, /Encapsulated注释:/Encapsulated生成封装的PostScript文件输出 PlotS, 0,1,1,0,0,0,0,1,1,0, /Normal TV, image Device, /Close_File Set_Plot, thisDevice上述命令产生的输出如图69所示。图69:PostScript设备用可变的像素来使图像适应输出窗口的尺寸。那个地址的尺寸为2*2英寸。但是,

2、若是输出窗口尺寸与原图像的纵横比不同时,图像将改变尺寸以保证自身的纵横比,其中有一方向将完全填满输出窗口。例如,一样利用上述图像,那个地址的输出窗口为X方向1英寸,Y方向2英寸。 Device, XSize=1, Ysize=2, /Inches, /Encapsulated这些命令取得的结果见图70。注意,此图像只有1*1英寸,只填充了输出窗口的一半。图70:当输出窗口和原图像具有不同的纵横比时,图像将改变尺寸以维持自身的纵横比,而且其中的一个方向将充满整个输出窗口。类似地,若是有一个2*1英寸的输出窗口,如下: Device, XSize=2, Ysize=1, /Inches, /Enc

3、apsulated结果见图71。图71:此图类似于图70,除输出窗口的X方向是Y方向的两倍外。若是PostScript画图窗口是X方向1英寸和Y方向3英寸,那么TV命令输出的结果是1*1英寸的图像。事实上,图像老是依照输出窗口的尺寸和原图像的纵横比来确信大小,可能会造成困难。例如,假设有一个500*500像素的显示窗口,而且想将图像显示在400*400像素大小的窗口的中心。更进一步假设,要在图像的周围画一外框。可能会用以下命令在窗口中定位显示图像: image=LoadData(7) image=Congrid(image, 400, 400, /Interp) Window, XSize=5

4、00,Ysize=500 TV, image, , , /Normal Plot, FindGen(100), /NoData, /NoErase, $ Position=,注释:画外框若是当前图形窗口为显示设备时,能够看到图72所示的输出。图72:在显示设备上带边框的图像。但如果是在PostScript设备上运行这些命令(不是用Window命令),将取得超级不一样的结果。尤其是,图像依照输出窗口尺寸改变大小,极可能致使图像的外框的位置不对,如图73。利用TV命令设置图像大小 设置将进入PostScript输出中的图像尺寸的正确方式是在TV命令中利用的XSize和YSize关键字。例如,要在P

5、ostScript输出中取得与图72具有相同输出的正确方式如下: Device, XSize=, Ysize=, /Inches, /Encapsulated TV, image, , , XSize=, Ysize=, /Inches Position=,图73:在PostScript输出中,图像的尺寸是依照输出窗口的尺寸来决定的,这可能并非用户想要的,如本图所示。图74:在PostScript窗口中,缩放和放置图像的正确方式是利用TV命令的缩放和定位的能力。将此图与图73比较一下。若是想编写一个通用的IDL程序,就象上面那个,不管窗口大小如何转变都能正常工作,不管是在显示设备上仍是在Pos

6、tScript文件中,也一样能工作。这时,或许需要计算图像在显示窗口中基于设备坐标的大小和位置。在PostScript设备上和在显示设备上工作时,唯一的真正区别在于如何计算图像的尺寸。程序确实是用于此目的(此程序在下载的本书配套程序中)。 PRO ImageAx, image, Position=position IF N_PARAMS() EQ 0 THEN Message, Must pass image argument. IF N_ELEMENTS(position) EQ 0 THEN $ position = , , , ; Get the size of the image in

7、 pixel units. s = SIZE(image) imgXsize = s(1) imgYsize = s(2) Calculate the size and starting locations in pixels. xsize = (position(2) - position(0) * ! ysize = (position(3) - position(1) * ! xstart = position(0) * ! ystart = position(1) * ! Size the image differently in PostScript. IF ! EQ PS THEN

8、 $ TV, image, xstart, ystart, XSize=xsize, YSize=ysize ELSE $ TV, Congrid(image, xsize, ysize, /Interp), xstart, ystart Draw the axes around the image. Plot, FIndGen(100), /NoData, /NoErase, Position=position END打开几个不同尺寸的窗口运行该程序,输出依次显示在每一个窗口中。注意,图像的纵横比再也不维持了。反而,它在窗口的位置维持不变。 image=LoadData(9) Window,

9、 XSize=400, YSize=400, /Free ImageAx, image Window, XSize=300, YSize=500, /Free Window, XSize=600, YSize=300, /Free能够运行那个程序,将输出结果传送到任何窗口,不管是显示设备仍是PostScript设备都能够。例如,能够用下面的命令将输出送到PostScript文件中。 Device, XSize=,YSize=,/Inches, /Encapsulated ImageAx, image, Position=,输出结果见图75。想以完全独立于设备的方式来显示图像,笔者偏爱用TVIm

10、age程序(已下载的本书配套程序)。它不仅能用Position关键字按上面ImageAx的风格来在显示窗口中定位图像,同时若是情愿,还能维持图像的纵横比。关于TVImage命令详见72页的“用归一化坐标定位图像”。 Window, XSize=600, YSize=400, /Free TVImage, image, Position=, $ /Keep_Aspect_Ratio图75:在*英寸的输出窗口中运ImageAx程序。注意,图像的纵横比再也不维持了,尽管保留了其在窗口中的位置。在PostScript中显示图像的另一个极为重要的地址是,缺省情形下,PostScript设备对每一个图像像

11、素只保留四位的信息。这对16色或是灰度级的图像已经足够了。若是想要256色,应该将关键字Bits_Per_Pixel设为 8,像如此: IDL Device, Bits_Per_Pixel = 8, Color = 1在横向输出模式中计算PostScript的偏移量纵向模式下的PostScript文件偏移量为X方向上英寸,y方向上5英寸。这就将图形输出到页面的上半部份。因此,超级容易就看出偏移量是基于页面的左下角计算出来。(见图 78。)键入以下语句就能够够看出缺省的偏移量:图76:纵向和横向模式下窗口的尺寸和偏移量。注意,在横向模式下,整个页面被逆时针旋转了90度,而且偏移量(不是窗口尺寸)

12、也随着一路旋转。(右图有问题吧? thisDevice = ! Help, /Device但是当把图像横向输出为时,整页已被旋转了90度,包括页面的左下角!能够在图76中看到它们的缺省值。若是没成心识到偏移点已随页面旋转了,可能设置的偏移量会使图形超出页面。例如,想要使X和Y方向的偏移量都为1英寸,能够会如此做: Device, XOffset = , YOffset = , /Inches, /Landscape Plot, data能够在图77中看到想象中作出的图形和事实上作出的图。确信自己明白了偏移量在横向模式下是如何工作的。图77:若是不注意横向模式下偏移量是如何工作的,图形将被旋转偏

13、出页面右边。最右边的图不是如此的吧?用PS_Form配置PostScript设备已下载的本书配套程序中有一个名为PS_Form的程序。那个程序的目的是让用户能够交互式地决定将图形放在PostScript输出窗口的哪里,和设置PostScript设备其它的配置。能够在图78中看到PS_Form的图示说明。在右上角的画图组件内的黄色方框代表PostScript页面。黄色框内的绿色框是PostScript页面上输出窗口的位置。用鼠标左键沿在页面内移动绿色方框。用鼠标右键画一个新的绿色框。当设置好以后,点Accept按钮。PS_From将返回一个结构,此结构里面的字段都是Device命令的有效关键字。

14、如下PS_Form被用来画一个简单图形的例子。deviceKeywords = PS_Form (Cancel = canceled) If canceled NE 1 THEN Begin currentDevice = ! Device, _Extra = deviceKeywords Plot, LoadData (1) Device, /Close_File Set_Plot, currentDevice ENDIF注意PS_Form的一个好特点是,当设备被设置为横向时,用户没必要考虑偏移量的旋转问题。对用户来讲,偏移量仿佛老是基于左下角算出来的。PS_Form另一个好特点是,它能够记

15、住上次设置。例如,像下面如此挪用PS_Form,并更改它的配置。终止以后点Accept按钮。 setup = PS_Form ()要看设置的内容,键入: Help, setup, /Structure要用适才的设置内容来启动PS_Form,键入: newSetup = PS_Form (Defaults = setup)要看PS_Form 是如何被应用的,能够试着挪用XWindow程序,它也是下载的本书配套程序之一。XWindow是一个“智能化”的图形窗口,它能够自我调整大小,能够载入只用于它自己的色彩表,也能够将它的输出送到PostScript文件中。能够如此来挪用它: XWindow, S

16、hade_surf, LoadData(2), /Output, /XColors尝试用XWindow程序将窗口里面的内容制作成一个PostScript文件。这本书余下的大部份内容将讨论如何编写一个类似于Xwindows的程序。配置和利用打印设备打印设备在中被引入介绍,最初不像其它图形输出设备能用Device命令来配置。Dialog_PrinterSetup命令是用来存取运算机上缺省打印机的配置参数。说明默许打印机如何安装和配置已经远远超出了本书要讨论的范围,但一样来讲,打印机配置对话框提供了较多配置打印机自身的选项,但关于如何定位图形输出的选择相对较少。比如说,PostScript设备。为了

17、让用户在打印设备上有更多的选项来松定位图形输出,Research Systems公司在IDL5中为Printer设备引入了Device关键字。(注意,这些关键字仅适用于当向打印机发送直接图形命令时。)这些关键字XSize,YSize,XOffset和YOffset和其它硬拷贝输出设备中同名关键字很象,尽管不完满是。下面将指出它们的一些不同的地方。图78:弹出式组件程序PS_Form。那个程序为用户配置PostScript设备提供了交互式方式。此图为如何配置PostScript设备来生本钱书的大部份图形。要存取默许打印机的配置,键入: ok = Dialog_PrinterSetup ()此对话

18、框在Windows NT上如图79所示。图79:在Windows NT机械上的Dialog_PrinterSetup的对话框在利用打印设备时,重要的是要明白,只有关键字Close_Document被用于Device命令时,输出内容才会被送到打印机上。例如,生成一幅线画图命令的正确顺序类似于下面的代码。关闭打印机文档是必需的。若是忘了这条代码,可不能输出任何东西。由于下面的代码中有一个IF循环,因此下面的代码必需放在一个文本编辑器中编辑,就像一个IDL主程序一样。将文件存为。能够在下载的程序中找到那个程序。 data = LoadData(1) ok = Dialog_PrinterSetup(

19、) IF ok THEN BEGIN Set_Plot, PRINTER Plot, data Device, /Close_Document ENDIF若是想运行那个主程序而且把结果输出到默许打印机上,能够如此做:. Run sendprinter用打印设备定位图形在Printer设备的第一版中,当将图形输出到默许打印机时,输出的图形常常充满了整页纸,常常看起来什么全然不象显示设备上的图形。事实上,不能操纵将图形放在打印机的什么位置。例如,图像按设备精度打印时,其左下角位于页面的左下角。一个256乘256的图像用600 dpi的像素分辨率打印到一个PostScript打印机上时,常常只有平方

20、英寸,除非应用了适合的比例放大因子。像素在PostScript设备上,可不能按比例地缩放到纸上。TV或TVscl命令中的XSize和YSize关键字当它们用于PostScript时一样不能缩放像素。(例子见 71页的“在PostScript设备上改变图像尺寸”)这一点在IDL5种作了改良,对Device命令增加了关键字,能够和Printer设备一路被用来定位图形在纸上的位置和比例。像在PostScript设备中的同名关键字一样,Printer设备的关键字默许时用厘米单位。(也能够设为英寸,若是Inches关键字被利用的话。在纵向输出模式下,XSize, YSize, XOffset和YOffs

21、et的默许值是(用英寸):XOffset: inchesYOffset:XSize:YSize:在横向输出模式中,默许值为:读者当即会发觉这些缺省值在Printer设备上和在PostScript设备上给出了相同的相对输出尺寸。可是也要注意,偏移量常常从页面的左下角计算出来。这是显而易见的,可是横向模式下PostScript偏移量不是如此计算的(见199页的“在横向输出模式中计算PostScript的偏移量”)。就意味着在编写一个既能创建PostScript文件又能将图形显示直接送到打印机的程序时,要额外注意横向模式下的偏移量。为了帮忙读者正确地计算这些关键字的值,Research System

22、s公司同时为Device命令引入了Get_Page_Size关键字,它能够用来返回一个包括打印设备页面的X方向尺寸和Y方向尺寸的两维矢量。奇怪的是,只能用设备坐标返回页面的尺寸,尽管页面和偏移量的关键词是用英寸或厘米来表示。因此,要想在页面上取得精准的输出结果,必需做些计算。例如,若是想让一个图形在输出时占页面的80%,也能够键入这些命令: thisDevice =! Set_Plot, PRINTER Device, Get_Page_Size = myPage Device, XSize = myPage0*, XOffset = myPage0*, $ YSize = myPage1*,

23、 YOffset = myPage 1*, /Device Plot, Findgen (11) Set_Plot, thisDevice 用打印设备输出图像向Printer设备输出一张图像稍不同于PS设备向PostScript文件输出一张图像(见193页的“问题:PostScript设备显示图像时的不同”。)要紧区别在于通过Printer设备输出的图像没有维持纵横比,而用PostScript设备输出时却保留了。可是,和PostScript设备一样,Printer设备也能在TV或TVScl命令顶用XSize,YSize关键字来适当的改变图像的尺寸。图像的偏移量能够用Device命令中的关键字Xoffset,YOffset关键字来设置。例如,假假想在页面的中间放一个常规的图像,在页面上的纵横比为2/3,能够键入下面这些命令: Device, XOffset = , YOffset = , /Inches image = LoadData (7) TV, image, XSize = 6, YSize = 4, /Inches

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1