版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE411、界面(了解各部分的功能、记住常用的操作) 41.1取屏幕坐标 42、变量及文件的命名、定义变量 42.1变量的保存与恢复 42.2变量的销毁 43、基本操作 43.1算术运算 43.2数组操作 53.3字符串操作 63.4关系运算 83.5逻辑运算 83.6常用函数 83.7筛选与排序 84、判断结构、循环结构 94.1if语句 94.2CASE语句 94.3WHILE语句 104.4FOR语句 105、文件操作(读写文本文件、读写二进制文件、读写word等其他文件) 105.1eex文件的读写 105.2二进制文件的写 115.3二进制文件的读 115.4文件的信息、结构数组的个数 115.5写文本文件 115.6测试文件是否存在 115.7读文本文件的一行 125.7读文本文件的多行 126、图像操作 136.1图像信息的查询 146.2图像信息的读取 156.3图像信息的写入 166.4图像缩放 176.5图像移动 196.6直接图形系统图像显示 196.7对象图形系统图像显示 217界面设计 227.1建菜单 227.2xmanager 397.3右键菜单 407.4右键菜单 408程序发布 419类 419.1对象的建立与销毁 419.2类的建立 419.3类方法建立 419.4创建窗口对象 429.5创建视图对象 429.6创建模式对象 429.12对象销毁 4210有用的操作 4210.1Alt+?的妙用 4210.2Keyword_set()函数 4310.3两个比较特殊的关键字 4310.4IDL语言特点 4310.5定义程序根目录 4311对话框 4312程序运行时间测试 4413鼠标事件 4413.1鼠标按键的检测 4413.2虚拟跟踪球 4513.3 数据获取DATAPICKING 4613.4选取SELECTION 4813.5 灯光LIGHT 4913.6曲面SURFACE 5013.7图例LEGEND 5113.7轮廓线CONTOUR 5213.8坐标轴AXIS 5213.9绘图符号IDLgrSYMBOL 5413.10线IDLgrPLOT 5513.11折线PLOYLINE 5713.12填充模式PATTERN 5713.13多边形POLYGON 5813.14字体FONT 5913.15文本TEXT 6013.16对象数组 61附录A 组件的事件结构 61一. 基本组件的事件结构 611.base组件 612. 绘图组件 613. 下拉式列表组件 624. 标签组件 625. 列表组件 626. 滑动条组件 627. 表单组件 628. 文本组件 63二. 复合组件的事件结构 641. CW_Animate 642. CW_Arcball 643. CW_BGroup 644. CW_Clr_Index 645. CW_Color_Sel 646. CW_DefROI 647. CW_Field 648. CW_Form 659. CW_Flisder 6510. CW_Orient 6511. CW_PDMenu 6512. CW_RGBSlider 6513. CW_Zoom 65三. 组件程序的事件结构 65 Xcolors 65四. 其他组件的事件结构 651. 键盘焦点事件 662. 组件退出请求事件 663. 组建计时器事件 664. 组件跟踪事件 66
idl软件学习内容1、界面(了解各部分的功能、记住常用的操作)1.1取屏幕坐标Device,Get_Screen_Size=screenSize2、变量及文件的命名、定义变量2.1变量的保存与恢复RESTORE,'D:\EEXLT\SYSTEM\EEXLT_cur.sav'SAVE,CURDIR,CURFNA,FILENAME='D:\EEXLT\SYSTEM\EEXLT_cur.SAV'RESTORE,'D:\EEXLT\SYSTEM\EEXLT_INDEX.sav'RESTORE,'D:\EEXLT\SYSTEM\EEXLT_PCF.SAV'RESTORE,'D:\EEXLT\SYSTEM\EEXLT_WORK.SAV'SAVE,CURWORK,WORKATT,FILENAME='D:\EEXLT\SYSTEM\EEXLT_WORK.SAV'2.2变量的销毁DELVAR,DEBUG3、基本操作3.1算术运算3.2数组操作3.2.1数组的复制ELE200=REPLICATE(px32,POINTII)3.2.2结构数组的建立jbxx={dgs:dgs,zdx:zdxz,zxx:zxxz,zdy:zdyz,zxy:zxyz,$zdz:zdzz,zxz:zxzz,cs:znum,ls:xnum,hs:ynum,$xfbl:xfbl,yfbl:yfbl,zfbl:zfbl}3.2.3测试结构数组的N_ELEMENTS(pcsave)3.2.4结构数组3.2.5测试结构数组的成员StruVarSum=N_ELEMENTS(StruVar)FIELDNA=TAG_NAMES(StruVar)FIELDNASum=(SIZE(FIELDNA))(1)3.2.5将数字变为字符BTZFC=BTZFC+self->SHUORZF(StruVar(MYII).(MYJJ))ELE200=DBLARR(NUM,POINTII)FIX(MYDBL)3.3字符串操作3.3.1去前后空格STRTRIM(STRING(INTX),2)Result1(*)=oFop->LONGSTRING(ResultData(0,*),3)curfile=oFop->Filenamesplit(srwjm)3.3.2FNAME0=pcsave(0).fname+'02BLOCKEEX\'3.3.3IFSTRCMP(NAMEII,EEXFILE(FJJ).fname)EQ1THENBEGINFILEYN=FJJENDIF3.3.4TITLECODE(myii).CODE=STRMID(ALINE,MY(0),MY(1)-my(0)-1)my2=STRSPLIT(ALINE(II)+',',',',count=N_column)3.3.5STRLEN(MYSTR)-1)3.3.6FIND_POS=STRPOS(ALINE(II),',')3.3.7FNAME4=STRARR(4)3.3.8函数名函数描述STRCMP(str1,str2,N,/FOLD_CASE)对两个字符串进行比较,如果N存在只对前N个进行比较,/FOLD_CASE表示模糊比较STRMID(Str1,po1,Len,REVERSE_OFFSET)从字符串po1开始取出Len个字符。字符串的第一个字符的位置为0STRUPCASE()将所有的小写字母改写成大写字母STRLOWCASE()将所有的大写字母改写成小写字母STRLEN()字符串的长度STRTRIM(str,Flag)移去字符串中的空格Flag:0(移去左边空格),1(移去右边空格),2(移去两边的空格)STRPOS(Exp_Str1,Sea_Str2,Pos,REVERSE_OFFSET,/REVERSE_SEARCH])从一个字符串中查找与另外一个字符串完全匹配的起始点所在的位置Pos查找点的起始位置,默认值为0,1(如果指定/REVERSE_SEARCH])指定时,则表示从开始的Pos起,或者从末尾开始的Pos其(如果指定REVERSE_OFFSET)STRPUT,Des_Var_str,Sou_str,Pos将Sou_str字符串插入到变量Des_Var_str之中POS插入点的默认值为0Sou_str不为字符串,则按默认格式自动转化从POS处开始插入Des_Var_str,如果插入值的位置超过了Des_Var的最大长度,则自然截断3.4关系运算3.5逻辑运算3.6常用函数BLOCKNUM=(SIZE(PCSAVE))(1)PCSAVE(0).X0=MIN(PCSAVE(1:BLOCKNUM).X0)PCSAVE(0).POINTSUM=TOTAL(PCSAVE(1:BLOCKNUM).POINTSUM)px=sort(jl)ELE200=REPLICATE(px32,POINTII)READTIMES=FLOOR(POINTSUM/POINTII)MY=WHERE(DIIEQDELWJXH)EEXFILE(STATION).IMPTIME=SYSTIME()FNAME4=STRARR(4)dgs4=LONARR(4)zdxz=MAX(datax(*).X,MIN=zxxz)FITERR=MEAN(ABS(MYDIST))CSPCZ=INVERT(TRANSPOSE(XSB)##XSB)##TRANSPOSE(XSB)##CSXRADIUS=SQRT(ABS(CENTERX))sttoball=FLTARR(10000000)INTDBL=STRLEN(STRTRIM(STRING(FIX(MYDBL)),2))outdata=STRARR(1,dianshu)outdat2=DBLARR(3,dianshu)FIND_POS=STRPOS(ALINE(II),',')3.7筛选与排序Result=WHERE(Array_Expression[,
Count][,
COMPLEMENT=variable][,
/L64][,
NCOMPLEMENT=variable])4、判断结构、循环结构4.1if语句IFFILEYNEQ-1THENBEGINENDIFELSEBEGINENDELSE4.2CASE语句CASE1OF(detxLE0)*(detyLE0):BEGINdgs4(0)=dgs4(0)+1IFdgs4(0)EQ1THENBEGINOPENW,1,FNAME4(0)WRITEU,1,element(ii)CLOSE,1OPENU,1,FNAME4(0),/APPENDENDIFELSEBEGINWRITEU,1,element(ii)ENDELSEEND;case1ENDCASE;case1ofCASEChaOrEngOF0:BTZFC=BTZFC+TITLECODE(MY).COLUMCHN+','1:BTZFC=BTZFC+TITLECODE(MY).COLUMENG+','ENDCASE4.3WHILE语句ygds=1LWHILEygdsLEquxhDOBEGINquhbm(2,ygds)=quhbm(3,ygds-1)+1quhbm(3,ygds)=quhbm(2,ygds)+quhbm(1,ygds)-1ygds++ENDWHILE4.4FOR语句FORMYBAL=0,BALLSUM-1DOBEGINPOINTN=MYBAL+1MYSORT=WHERE(LS_DIST.STARTPOIEQPOINTN)DIST00=LS_DIST(MYSORT)DIST01=ABS(LS_DIST.SDISTANC-DIST00(0).SDISTANC)DIST02=ABS(LS_DIST.SDISTANC-DIST00(1).SDISTANC)MYSOR1=WHERE(DIST01LT0.2)MYSOR2=WHERE(DIST02LT0.2)IF(MYSOR1(0)EQ-1)*(MYSOR2(0)EQ-1)THEN$BALLALL(MYBAL).TOF=0ENDFOR5、文件操作(读写文本文件、读写二进制文件、读写word等其他文件)5.1eex文件的读写datax=oFop->READ_EEX(NAMEJ,PSUM100=PSUM)Data=[Transpose(datax(*).X),$Transpose(datax(*).Y),$Transpose(datax(*).Z)]5.2二进制文件的写OPENU,LUNA,PCSAVE(FILEYN).FNAME,/GET_LUN,/APPENDWRITEU,LUNA,BLOCKPCLOSE,LUNA&FREE_LUN,LUNA;OPENW,LUNA,BLOCK.FNAME,/GET_LUNWRITEU,LUNA,BLOCKPCLOSE,LUNA&FREE_LUN,LUNA5.3二进制文件的读OPENR,LUNR00,NAMEII,/GET_LUNREADU,LUNR00,ELE200CLOSE,LUNR00&FREE_LUN,LUNR005.4文件的信息、结构数组的个数FINFO=FSTAT(LUNR00)POINTSUM=FINFO.SIZE/405.5写文本文件xwj=oFop->EXPORT_TXT(pcsave(MYII).fname,NUM,xshift,yshift)5.6测试文件是否存在IFFILE_TEST(pcsave(MYII).fname)EQ0THENBEGINprint,pcsave(MYII).fname+'不存在。'ENDIFELSEBEGINWJLJ=oFop->Filenamesplit(pcsave(MYII).fname)ENDELSE5.7读文本文件的一行ChnTile=self->Read_Line('D:\EEXLT\SYSTEM\TabColumCode.txt',N_line=LSum)5.7读文本文件的多行OPENR,LUN,SRWJM,/GET_LUNFIND_FIRST=DBLARR(N_column,N_LINE)READF,LUN,FIND_FIRSTFREE_LUN,LUN&CLOSE,LUNOPENR,LUN,'D:\EEXLT\SYSTEM\MYSTR.DAT',/GET_LUNREADF,LUN,MYSTRCLOSE,LUN&FREE_LUN,LUNMYC=self->READ_COLOR(1)NUM=self->DET_COLUMN(INPFNA)6、图像操作paddraw=WIDGET_DRAW(ltBase,$XSIZE=self.drawX*.25,$YSIZE=self.drawY*.25,$XOFFSET=0,$YOFFSET=self.scr_ysize*0.05,$UNAME='draw2',$RETAIN=2,$/BUTTON_EVENTS,$/MOTION_EVENTS,$/wheel_events,$GRAPHICS_LEVEL=2$)widget_control,ltbase,/REALIZEwidget_control,paddraw,get_value=dispWindowPaddispView=OBJ_NEW('IDLgrView',$ZCLIP=[1000,-1000],$EYE=2000.0,$VIEWPLANE_RECT=[-0.5,-0.5,1,1],$COLOR=[0,0,0]$)DispModel=OBJ_NEW('IDLgrModel')DispHolder=OBJ_NEW('IDL_Container')6.1图像信息的查询Result=QUERY_IMAGE(Filename[,
Info][,
CHANNELS=variable][,
DIMENSIONS=variable][,
HAS_PALETTE=variable][,
IMAGE_INDEX=index][,
NUM_IMAGES=variable][,
PIXEL_TYPE=variable][,
SUPPORTED_READ=variable][,
SUPPORTED_WRITE=variable][,
TYPE=variable]
)6.2图像信息的读取Result=READ_IMAGE(Filename[,
Red,Green,Blue][,
IMAGE_INDEX=index]
)Result=DIALOG_READ_IMAGE([Filename][,
BLUE=variable][,
DIALOG_PARENT=widget_id][,
FILE=variable][,
FILTER_TYPE=string][,
/FIX_FILTER][,
GET_PATH=variable][,
GREEN=variable][,
IMAGE=variable][,
PATH=string][,
QUERY=variable][,
RED=variable][
,TITLE=string]
)6.3图像信息的写入WRITE_IMAGE,Filename,Format,Data[,
Red,Green,Blue][,
/APPEND]Result=DIALOG_WRITE_IMAGE(Image[,R,G,B][,
DIALOG_PARENT=widget_id][,
FILENAME=string][,
/FIX_TYPE][,
/NOWRITE][,
OPTIONS=variable][,
PATH=string][
,TITLE=string][,
TYPE=variable][,
/WARN_EXIST])6.4图像缩放6.4.1ZOOMZOOM[,
/CONTINUOUS][,
FACT=integer][,
/INTERP][,
/KEEP][,
/NEW_WINDOW][,
XSIZE=value][,
YSIZE=value][,
ZOOM_WINDOW=variable]6.4.2ZOOM_24ZOOM_24[,
FACT=integer][,
/RIGHT][,
XSIZE=value][,
YSIZE=value]6.4.3;Chapter09ZoomImageOPROChapter09ZoomImageObjectfile=FILEPATH('convec.dat',SUBDIRECTORY=['examples','data'])imageSize=[248,248]image=READ_BINARY(file,DATA_DIMS=imageSize)oWindow=OBJ_NEW('IDLgrWindow',RETAIN=2,$DIMENSIONS=imageSize,TITLE='GreyImage')oView=OBJ_NEW('IDLgrView',VIEWPLANE_RECT=[0.,0.,imageSize])oModel=OBJ_NEW('IDLgrModel')oImage=OBJ_NEW('IDLgrImage',image,/GREYSCALE)oModel->Add,oImageoView->Add,oModeloWindow->Draw,oViewoWindow=OBJ_NEW('IDLgrWindow',RETAIN=2,$DIMENSIONS=imageSize,TITLE='EnlargedArea')oView->SetProperty,VIEWPLANE_RECT=[0.,0.,imageSize/2]oWindow->Draw,oViewOBJ_DESTROY,oViewEND6.5图像移动6.6直接图形系统图像显示6.6.1TVTV,Image[,
Position][,
/CENTIMETERS|,/INCHES][,
/ORDER][,
TRUE={1
|
2
|
3}][,
/WORDS][,
XSIZE=value][,
YSIZE=value]orTV,Image[,
X,Y[,
Channel]][,
/CENTIMETERS|,/INCHES][,
/ORDER][,
TRUE={1|2|3}][,
/WORDS][,
XSIZE=value][,
YSIZE=value]6.6.2TVTVSCL,Image[,
Position][,
/CENTIMETERS][,
/INCHES][,
/NAN][,
/ORDER][,
TOP=value][,
TRUE={1
|
2
|
3}][,
/WORDS][,
XSIZE=value][,
YSIZE=value]orTVSCL,Image[,
X,Y[,
Channel][,
/CENTIMETERS][,
/INCHES][,
/NAN][,
/ORDER][,
TOP=value][,
TRUE={1
|
2
|
3}][,
/WORDS][,
XSIZE=value][,
YSIZE=value]]6.7对象图形系统图像显示6.7.17界面设计7.1建菜单7.1.1Result=WIDGET_BASE([Parent][,
/ALIGN_BOTTOM|,/ALIGN_CENTER|,/ALIGN_LEFT|,/ALIGN_RIGHT|,/ALIGN_TOP][,
/BASE_ALIGN_BOTTOM|,/BASE_ALIGN_CENTER|,/BASE_ALIGN_LEFT|,/BASE_ALIGN_RIGHT|,/BASE_ALIGN_TOP][,
BITMAP=value][,
COLUMN=ncols|,ROW=nrows][,
/CONTEXT_EVENTS][,
/CONTEXT_MENU][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
/EXCLUSIVE|,/NONEXCLUSIVE][,
/FLOATING][,
FRAME=width][,
FUNC_GET_VALUE=string][,
/GRID_LAYOUT][,
GROUP_LEADER=widget_id{mustspecifyformodaldialogs}][,
/KBRD_FOCUS_EVENTS][,
KILL_NOTIFY=string][,
/MAP{not
for
modal
bases}][,
/MASK][,MBAR=variable|,/MODAL][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SCROLL{notformodalbases}][,
/SENSITIVE][,
SPACE=value{ignoredifexclusiveornonexclusive}][,
TAB_MODE=value][,
TITLE=string][,
TLB_FRAME_ATTR=value{top-levelbasesonly}][,
/TLB_ICONIFY_EVENTS{top-levelbasesonly}][,
/TLB_KILL_REQUEST_EVENTS{top-levelbasesonly}][,
/TLB_MOVE_EVENTS{top-levelbasesonly}][,
/TLB_SIZE_EVENTS{top-levelbasesonly}][,
/TOOLBAR][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
XOFFSET=value][,
XPAD=value{ignoredifexclusiveornonexclusive}][,
XSIZE=value][,
X_SCROLL_SIZE=value][,
YOFFSET=value][,
YPAD=value{ignoredifexclusiveornonexclusive}][,
YSIZE=value][,
Y_SCROLL_SIZE=value])self.tlb=Widget_Base($MBAR=MenuBase,$/Column)self.tlb=Widget_Base(XOFFSET=150,$;主窗口起始点x方向位置YOFFSET=50,$;主窗口起始点y方向位置uname='top',$uvalue=self,$MBAR=MenuBase,$/TLB_MOVE_EVENTS,$/TLB_SIZE_EVENTS,$TITLE='EEXLT',$;窗口的标题/TLB_KILL_REQUEST_EVENTS,$/Column)self->creatMainMenu,MenuBase7.1.2Result=WIDGET_BUTTON(Parent[,
ACCELERATOR=string][,
/ALIGN_CENTER|,/ALIGN_LEFT|,/ALIGN_RIGHT][,
/BITMAP][,
/CHECKED_MENU][,
/DYNAMIC_RESIZE][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
/FLAT][,
FONT=string][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
/HELP][,
KILL_NOTIFY=string][,
/MENU][,
/NO_COPY][,
/NO_RELEASE][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
/PUSHBUTTON_EVENTS][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SENSITIVE][,
/SEPARATOR][,
TAB_MODE=value][,
TOOLTIP=string][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=value][,
X_BITMAP_EXTRA=bits][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.47.1.57.1.6.10Result=WIDGET_DROPLIST(Parent[,
/DYNAMIC_RESIZE][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
/FLAT][,
FONT=string][,
FRAME=value][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
KILL_NOTIFY=string][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
RESOURCE_NAME=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SENSITIVE][,
TAB_MODE=value][,
TITLE=string][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=value][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.11Result=WIDGET_LIST(Parent[,
/CONTEXT_EVENTS][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
FONT=string][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
KILL_NOTIFY=string][,
/MULTIPLE][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
RESOURCE_NAME=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SENSITIVE][,
TAB_MODE=value][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=value][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.12Result=WIDGET_SLIDER(Parent[,
/DRAG][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
FONT=string][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
KILL_NOTIFY=string][,
MAXIMUM=value][,
MINIMUM=value][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
RESOURCE_NAME=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
SCROLL=units][,
/SENSITIVE][,
/SUPPRESS_VALUE][,
TAB_MODE=value][,
TITLE=string][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=value][,
/VERTICAL][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.13Result=WIDGET_TEXT(Parent[,
/ALL_EVENTS][,
/CONTEXT_EVENTS][,
/EDITABLE][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
FONT=string][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
IGNORE_ACCELERATORS=value][,
/KBRD_FOCUS_EVENTS][,
KILL_NOTIFY=string][,
/NO_COPY][,
/NO_NEWLINE][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
RESOURCE_NAME=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SCROLL][,
/SENSITIVE][,
TAB_MODE=value][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=value][,
/WRAP][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.14Result=WIDGET_TREE(Parent[,
/ALIGN_BOTTOM|,
/ALIGN_CENTER|,/ALIGN_LEFT|,
/ALIGN_RIGHT|,
/ALIGN_TOP][,
BITMAP=array][,
/CONTEXT_EVENTS][,
DRAG_NOTIFY=string][,
/DRAGGABLE][,
/DROP_EVENTS][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
/EXPANDED][,
/FOLDER][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
INDEX=value][,
KILL_NOTIFY=string][,
/MASK][,
/MULTIPLE][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SENSITIVE][,
TAB_MODE=value][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=string][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.15Result=WIDGET_TAB(Parent[,
/ALIGN_BOTTOM|,/ALIGN_CENTER|,/ALIGN_LEFT|,/ALIGN_RIGHT|,/ALIGN_TOP][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
KILL_NOTIFY=string][,
LOCATION={0
|
1
|
2
|
3}][,
MULTILINE=0
|
1
(Windows)ornumtabsperrow(Motif)][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SENSITIVE][,
TAB_MODE=value][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.16WIDGET_TABLEResult=WIDGET_TABLE(Parent[,
ALIGNMENT={0|1|2}][,
/ALL_EVENTS][,
AM_PM=[string,string]][,
BACKGROUND_COLOR=array][,
COLUMN_LABELS=string_array][,
/COLUMN_MAJOR
|
,
/ROW_MAJOR][,
COLUMN_WIDTHS=array][,
/CONTEXT_EVENTS][,
DAYS_OF_WEEK=string_array{7names}][,
/DISJOINT_SELECTION][,
/EDITABLE][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
FONT=string][,
FOREGROUND_COLOR=array][,
FORMAT=value][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
IGNORE_ACCELERATORS=value][,
/KBRD_FOCUS_EVENTS][,
KILL_NOTIFY=string][,
MONTHS=string_array{12names}][,
/NO_COLUMN_HEADERS][,
/NO_COPY][,
/NO_HEADERS][,
/NO_ROW_HEADERS][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
/RESIZEABLE_COLUMNS][,
/RESIZEABLE_ROWS{notsupportedinWindows}][,
RESOURCE_NAME=string][,
ROW_HEIGHTS=array][,
ROW_LABELS=string_array][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SCROLL][,
/SENSITIVE][,
TAB_MODE=value][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0
|
1
|
2}][,
UVALUE=value][,
VALUE=value][,
XOFFSET=value][,
XSIZE=value][,
X_SCROLL_SIZE=width][,
YOFFSET=value][,
YSIZE=value][,
Y_SCROLL_SIZE=height])WIDGET_LABELResult=WIDGET_LABEL(Parent[,
/ALIGN_CENTER|,/ALIGN_LEFT|,/ALIGN_RIGHT][,
/DYNAMIC_RESIZE][,
FONT=string][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GROUP_LEADER=widget_id][,
KILL_NOTIFY=string][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
RESOURCE_NAME=string][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SENSITIVE][,
/SUNKEN_FRAME][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0|1|2}][,
UVALUE=value][,
VALUE=value][,
XOFFSET=value][,
XSIZE=value][,
YOFFSET=value][,
YSIZE=value])7.1.17Result=WIDGET_DRAW(Parent[,
/APP_SCROLL][,
/BUTTON_EVENTS][,
CLASSNAME=string][,
/COLOR_MODEL][,
COLORS=integer][,
DRAG_NOTIFY=string][,
/DROP_EVENTS][,
EVENT_FUNC=string][,
EVENT_PRO=string][,
/EXPOSE_EVENTS][,
FRAME=width][,
FUNC_GET_VALUE=string][,
GRAPHICS_LEVEL=2][,
GROUP_LEADER=widget_id][,
IGNORE_ACCELERATORS=value][,
KEYBOARD_EVENTS={1|2}][,
KILL_NOTIFY=string][,
/MOTION_EVENTS][,
/NO_COPY][,
NOTIFY_REALIZE=string][,
PRO_SET_VALUE=string][,
RENDERER={0
|
1}][,
RESOURCE_NAME=string][,
RETAIN={0
|
1
|
2}][,
SCR_XSIZE=width][,
SCR_YSIZE=height][,
/SCROLL][,
/SENSITIVE][,
TOOLTIP=string][,
/TRACKING_EVENTS][,
UNAME=string][,
UNITS={0
|
1
|
2}][,
UVALUE=value][,
/VIEWPORT_EVENTS][,
/WHEEL_EVENTS][,
XOFFSET=value][,
XSIZE=value][,
X_SCROLL_SIZE=width][,
YOFFSET=value][,
YSIZE=value][,
Y_SCROLL_SIZE=height])7.1.18topLevelBase=WIDGET_BASE(/COLUMN)imageDraw=WIDGET_DRAW(topLevelBase,/BUTTON_EVENTS,XSIZE=imageSize[0],$YSIZE=imageSize[1],UNAME='imageDisplay')contextBase=WIDGET_BASE(topLevelBase,/CONTEXT_MENU,UNAME='drawContext')loadCTButton=WIDGET_BUTTON(contextBase,VALUE='XLOADCT',$EVENT_PRO='CDE_LoadCTEvent')7.1.17Result=TAG_NAMES(Expression[,
/STRUCTURE_NAME])7.1.18WIDGET_controluname=widget_info(event.id,/uname)7.2xmanagerxmanager,'EEXLTClass',self.tlb,$/no_block,$event_handler='EEXLTClass_Event',$cleanup='EEXLTClass_Cleanup'/no_block禁用IDL命令编辑行event_handlerGUI中有事件发生时,调用的过程cleanup删除GUI时调用的过程7.3右键菜单PROChapter07BaseRightClick_event,eventcontextBase=WIDGET_INFO(event.ID,FIND_BY_UNAME='contextMenu')WIDGET_DISPLAYCONTEXTMENU,event.ID,event.X,event.Y,contextBaseENDPROChapter07BaseRightClicktopLevelBase=WIDGET_BASE(/COLUMN,XSIZE=500,YSIZE=300,/CONTEXT_EVENTS)contextBase=WIDGET_BASE(topLevelBase,/CONTEXT_MENU,UNAME='contextMenu')firstButton=WIDGET_BUTTON(contextBase,$VALUE='Selection1',EVENT_PRO='CBE_FirstEvent')secondButton=WIDGET_BUTTON(contextBase,$VALUE='Selection2',EVENT_PRO='CBE_SecondEvent')doneButton=WIDGET_BUTTON(contextBase,VALUE='Done',$/SEPARATOR,EVENT_PRO='CBE_DoneEvent')WIDGET_CONTROL,topLevelBase,/REALIZEXMANAGER,'Chapter07BaseRightClick',topLevelBaseEND7.4右键菜单8程序发布9类9.1对象的建立与销毁oFop=OBJ_NEW('EEXLTFileOperate')OBJ_DESTROY,oFopoCloud=OBJ_NEW('EEXLTCloudPro')OBJ_DESTROY,oCloud9.2类的建立PROEEXLTClass__Define;oClass=obj_new('EEXLTClass')COMPILE_OPTStrictarrdefine={EEXLTClass,$INHERITSEEXLTCreat,$tlb:0L,$wToolbase:0L,$toolpos:0L,$oView:obj_new(),$oWindow:obj_new(),$}END9.3类方法建立FUNCTIONEEXLTCloudPro::SPACEINDEXSTRU,datax,xfbl,yfblsrwjm=DIALOG_PICKFILE($FILTER='*.txt',$title='SelectDATAfileofbigpointcloud:',$path=curdir,$FILE=curfna,$/MULTIPLE_FILES)9.4创建窗口对象Mywindow=OBJ_NEW('IDLgrWindow')9.5创建视图对象PaddispView=OBJ_NEW('IDLgrView',$ZCLIP=[1000,-1000],$EYE=2000.0,$;VIEWPLANE_RECT=[-10,-10,20,20],$VIEWPLANE_RECT=[-0.5,-0.5,1,1],$COLOR=[0,0,0]$)9.6创建模式对象Mymodel=OBJ_NEW('IDLgrModel')9.12对象销毁OBJ_DESTROY,MywindowOBJ_DESTROY,MyviewOBJ_DESTROY,Myfont1OBJ_DESTROY,Myfont210有用的操作10.1Alt+?的妙用Alt+?的妙用10.2Keyword_set()函数Keyword_set()函数与N_Elements()函数的相同之处在于,都能检测到有效参数被传递了,但是都不能检测无效传递的变量(比如说被传递变量没有被定义时,则检测不到);不同点是:N_Elements()能返回具体传递变量中元素的个数,而Keyword_set()只能通过0或1的值来标识是否被传递了。10.3两个比较特殊的关键字IDL中有两个比较特殊的关键字参数:_EXTRA:(值传递型)_REF_EXTRA:(地址传递型)10.4IDL语言特点IDL语言是一种完全基于矩阵运算的语言,掌握和了解矩阵运算的技巧,以及相关函数非常重要。10.5定义程序根目录;定义程序根目录RootDir=’D:\IDLWork\IDL3D'11对话框Result=DIALOG_MESSAGE(Message_Text[,
/CANCEL][,
/CENTER][,
/DEFAULT_CANCEL|,/DEFAULT_NO][,
DIALOG_PARENT=widget_id][,
DISPLAY_NAME=string][,
/ERROR|,/INFORMATION|,/QUESTION][,
RESOURCE_NAME=string][,
TITLE=string])Result=DIALOG_MESSAGE(‘’)12程序运行时间测试oSurF=obj_new('EEXLTSurvBasefunction')oSurF->timeOn,Time0=Time0self->DrawPloygon,varis,TemObject=TemObjectwidget_control,self.draw,set_Uvalue=TemObjectself->AddObject,TemObjectoSurF->timeOff,Time0OBJ_DESTROY,oSurF13鼠标事件13.1鼠标按键的检测IF(ev.CLICKSEQ2)THENTWE_ToggleValue,ev.ID双击操作IF(event.typeEQ7)THENBEGIN滚轮操作13.2虚拟跟踪球数据获取DATAPICKINGIF(event.pressEQ1)THENbegin;;这里要转换成为屏幕的01坐标cor1=[event.x,event.y]-[self.drawX/2,self.drawY/2]self.Lcorne1=cor1cor1=cor1+[self.drawX/2,self.drawy/2]cor1[0]=cor1[0]/self.drawX-0.5cor1[1]=cor1[1]/self.drawY-0.5d1=cor1d2=[cor2[0],cor1[1]]d3=cor2d4=[cor1[0],cor2[1]]data=[[d1],[d2],[d3],[d4]]Opoly=OBJ_NEW('IDLgrPolygon',$COLOR=[218,16,32],$DATA=data,$THICK=1,$STYLE=1$);dataxyz[0]=(dataxyz[0]+0.5)/(self.lmn2)+self.xmindataxyz[1]=(dataxyz[1]+0.5)/(self.lmn2)+self.ymindataxyz[2]=(dataxyz[2]+0.5)/(self.lmn2)+self.zminstaX=string(dataxyz[0])staY=string(dataxyz[1])staZ=string(dataxyz[2])13.4选取SELECTION灯光LIGHToLight1=OBJ_NEW('IDLgrLight',LOCATION=[2,2,5],TYPE=2,INTENSITY=0.25)13.6曲面SURFACE13.7图例LEGEND13.7轮廓线CONTOUR13.8坐标轴AXIS;Chapter08APROChapter08Axisdata=FINDGEN(100)myplot=OBJ_NEW('IDLgrPlot',data)xaxis=OBJ_NEW('IDLgrAxis',0)yaxis=OBJ_NEW('IDLgrAxis',1)myplot->GetProperty,XRANGE=xr,YRANGE=yrxaxis->SetProperty,RANGE=xryaxis->SetProperty,RANGE=yrxtl=0.02*(xr[1]-xr[0])ytl=0.02*(yr[1]-yr[0])xaxis->SetProperty,TICKLEN=xtlyaxis->SetProperty,TICKLEN=ytlmymodel=OBJ_NEW('IDLgrModel')myview=OBJ_NEW('IDLgrView')mywindow=OBJ_NEW('IDLgrWindow',RETAIN=2)mymodel->Add,myplotmymodel->Add,xaxismymodel->Add,yaxismyview->Add,mymodelSET_VIEW,myview,mywindowmywindow->Draw,myviewval=''READ,val,PROMP='Press<Return>todestroyobjects.'OBJ_DESTROY,mywindowOBJ_DESTROY,myviewEND13.9绘图符号IDLgrSYMBOL13.10线IDLgrPLOT13.11折线PLOYLINE13.12填充模式PATTERNpattern=BYTE(RANDOMN(seed,32,4)*255)myPattern=OBJ_NEW('IDLgrPattern',STYLE=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮行业人才招聘总结
- 美容美发行业美工岗位任务
- 2024年税务师题库及答案【必刷】
- 2024年认识公顷教学教案
- 2024年秋季二年级数学上册教案(17篇)
- 2024年牛顿第一定律教案
- 初中生请假安全协议书(2篇)
- 2024年计算机专业求职简历模版
- 核心语法知识夯基综合测试-2025届高三人教版英语一轮复习闯关攻略(解析版)
- 迎接信息化挑战 打造“数字化校园”
- 猫抓病的护理
- 勘察设计工作内容
- 2024-2025学年冀教新版八年级上册数学期末复习试卷(含详解)
- DB45T 1831-2018 汽车加油加气站防雷装置检测技术规范
- 《儿歌运用于幼儿园教育问题研究的文献综述》8600字
- 悬挂灯笼施工方案
- 水资源调配与优化-洞察分析
- 某自来水公司自然灾害应急预案样本(2篇)
- 无人机职业生涯规划
- 2024-2025学年语文二年级上册 统编版期末测试卷(含答案)
- 2024-2025年江苏专转本英语历年真题(含答案)
评论
0/150
提交评论