> My experience is quite different (apart from the text-size bug I
> mentioned in another posting in this thread). I find, like the
original
> poster, that postscript vector output from IDL 6.1 looks very poor
> mainly due (I think) to lines having very narrow widths.
Having learned the bulk of my object graphics knowledge from reading
through Mark's code, I am either falling into the same pitfalls or I
generally agree with his comments. In the code below, I observe the
following:
(1) The box and the vertical/horizontal lines are of slightly different
thickness. Pay particular attention to the bottom of the box when
previewing or printing
(2) The ordering of the filled polygon objects is consistently
incorrect. No matter what I try, I cannot get filled polygon (within
the same model) to lie beneath polylines. I would like black lines
around the red box!
I realise these are a little pedantic compared with the original post
where an axis itself is of different width but it is a bit of an
annoyance nevertheless. Depending on the resolution settings, the
lines can get quite thick and the difference becomes more apparent.
Are these bugs in IDL are bugs in the code below?
Cheers,
Randall
; ============================================================ ==
; Create the plot canvas (roughly one letter sized sheet of paper)
CanvasDim = [19.25,24.75]
oCanvasView = obj_new('IDLgrView', UNITS=2, DIMENSION=CanvasDim, $
VIEWPLANE_RECT=[0,0,1,1])
; ============================================================ ==
; Create the parameter box (top)
ParamDim = [19.0, 5.0] ; cm
; Boxes and lines
oParamBox = obj_new('IDLgrPolyline', [0,1,1,0,0], [0,0,1,1,0])
oTitleBox = obj_new('IDLgrPolygon', [0.95,1.0,1.0,0.95], $
[0.0,0.0,1.0,1.0], COLOR=[255,0,0], $
DEPTH_OFFSET=1)
; Vertical line
oTitleLine = obj_new('IDLgrPolyline', [0.95,0.95], [0,1])
; Horizontal line
oParamLine = obj_new('IDLgrPolyline', [0.00,0.95,0.95,0.00], $
[0.85,0.85,1.00,1.00])
; Parameter Model
oParamModel = obj_new('IDLgrModel', NAME='Parameters')
oParamModel -> add, oTitleBox
oParamModel -> add, oTitleLine
oParamModel -> add, oParamBox
oParamModel -> add, oParamLine
; Create the parameter view
oParamView = obj_new('IDLgrView', UNITS=2, DIMENSION=ParamDim, $
LOCATION=[0.125,CanvasDim[1]-ParamDim[1]-0.125], /TRANSPARENT, $
VIEWPLANE_RECT=[0,0,1,1])
oParamView -> add, oParamModel
; ============================================================ ==
; Group the objects
ogroup = obj_new('IDLgrViewgroup')
ogroup -> Add, oCanvasView
ogroup -> Add, oParamView
owin = obj_new('IDLgrWindow', GRAPHICS_TREE=ogroup, UNITS=2, $
DIMENSIONS=CanvasDim)
owin -> draw
resolution = 1.0/CanvasDim * 0.5
oclip = obj_new('IDLgrClipboard', GRAPHICS_TREE=ogroup, UNITS=2, $
DIMENSIONS=CanvasDim, RESOLUTION=resolution)
oclip -> draw, FILENAME='test_vector.eps', /VECTOR, /POSTSCRIPT
oclip -> draw, FILENAME='test_bitmap.eps', /POSTSCRIPT
end
|