chapter08light.pro

来自「IDL可视化工具入门与提高(PDF)及其随书代码」· PRO 代码 · 共 37 行

PRO
37
字号
; Chapter08Light.pro
PRO Chapter08Light
    zdata = DIST(40)
    mywindow = OBJ_NEW('IDLgrWindow',RETAIN=2)
    myview = OBJ_NEW('IDLgrView')
    mymodel = OBJ_NEW('IDLgrMODEL')
    mysurf = OBJ_NEW('IDLgrSurface', zdata, STYLE=2)
    myview -> Add, mymodel
    mymodel -> Add, mysurf
    mysurf -> GetProperty, XRANGE=xr, YRANGE=yr, ZRANGE=zr
    xnorm = [-xr[0]/(xr[1]-xr[0]), 1/(xr[1]-xr[0])]
    ynorm = [-yr[0]/(yr[1]-yr[0]), 1/(yr[1]-yr[0])]
    znorm = [-zr[0]/(zr[1]-zr[0]), 1/(zr[1]-zr[0])]
    mysurf -> SETPROPERTY, XCOORD_CONV=xnorm, $
        YCOORD_CONV=ynorm, ZCOORD_CONV=znorm
    mymodel ->Rotate, [1,0,0], -90
    mymodel ->Rotate, [0,1,0], 30
    mymodel ->Rotate, [1,0,0], 30
    SET_VIEW, myview, mywindow
    mywindow -> Draw, myview
    variable=''
    READ, variable, PROMPT='press Enter to draw next!'
    mylight = OBJ_NEW('IDLgrLight', TYPE=1, LOCATION=[0,0,1])
    mymodel -> Add, mylight
    mywindow -> Draw, myview
    READ, variable, PROMPT='press Enter to draw next!'
    mylight -> SetProperty, COLOR=[255,0,255]
    mywindow -> Draw, myview
    READ, variable, PROMPT='press Enter to draw next!'
    mylight -> SetProperty, INTENSITY=0.7
    mywindow -> Draw, myview
    READ, variable, PROMP='Destroy objects? (y/n) [y]: '
    IF STRPOS(STRUPCASE(variable),'N') EQ -1 THEN BEGIN
       OBJ_DESTROY, myview
       OBJ_DESTROY, mywindow
    ENDIF
END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?