www.pudn.com > IDL.rar > Applycolorbar_Indexed_object.pro


PRO Applycolorbar_Indexed_object 
    ; 确定文件 "worldtmp.png" 的路径。 
worldtmpFile=FILEPATH('worldtmp.png',$ 
SUBDIRECTORY=[ 'examples','demo' , 'demodata']) 
;从文件中向 IDL 输入图象。 
worldtmpImage=READ_PNG(worldtmpFile) 
;确定输入图象的大小。 
worldtmpsize=SIZE (worldtmpImage ,/DIMENSIONS) 
; 初始化对象。 
; 初始化显示。 
owindow=OBJ_NEW('IDLgrwindow',RETAIN =2,$ 
DIMENSIONS =[worldtmpsize[0],worldtmpsize[1]],$ 
TITLE ='Average World Temperature(in celsius)') 
oview=OBJ_NEW('IDLgrview',VIEWPLANE_RECT=[0,0,worldtmpsize[0],worldtmpsize[1]]) 
OModel=OBJ_NEW('IDLgrModel') 
; 初始化调色板和图象。 
opalette =OBJ_NEW('IDLgrpalette' ) 
opalette -> LoadCT,38 
oImage=OBJ_NEW('IDLgrImage',worldtmpImage,PALETTE = opalette ) 
; 添加图象至模型 , 添加模型至视图 , 
;在窗口中显示视图。 
OModel -> Add ,OImage 
oview -> Add , oModel 
owindow -> Draw ,oview 
; 初始化色调参数。 
fillColor=BYTSCL( INDGEN(18)) 
 
; 初始化文本变量。 
temperature=STRTRIM(FIX ((5*fillcolor)/42),2) 
;Initialize polygon and text locat ion parameters, 
x=[5.,30.,30.,5.,5.] 
y=[5.,5.,23.,23.,5.]+5. 
offset = 18.*FINDGEN(19)+5. 
 
;初始化多边形和文本对象。 
oPolygon=OBJARR(18) 
oText=OBJARR(18) 
FOR i=0,(N_ELEMENTS(opolygon)-1)DO BEGIN 
oPolygon[i]=OBJ_NEW( 'IDLgrpolygon',x,$ 
y+offset[i],COLOR =fillcolor[i],$ 
PALETTE =oPalette ) 
oText[i]=OBJ_NEW('IDLgrText',temperature[i],$ 
LOCATIONS=[x[0]+3.,y[0]+offset[i]+3.],$ 
COLOR =255*(fillcolor[i] LT 255),$ 
PALETTE = opalette ) 
ENDFOR 
;添加多边菜和文本至模型并在窗口中重新显示视图。 
oModel -> Add ,opolygon 
oModel -> Add ,oText 
owindow ->  Draw ,oview 
; 清除对象参数。 
OBJ_DESTROY ,[oview,opalette] 
END