|
From:
<br...@ph...> - 2006-04-11 11:23:15
|
Ethan Merritt wrote:
> In 3D, draw_3d_graphbox() is called at the beginning of the plot,
> but any later calls are under the control of 'set hidden3d' and
> 'set grid {front|back}'.
>
> The setting of 'set border {front|back}' has no effect in 3D.
> I don't know if that is a bug or if it is intentional.
A mixture of both, I'd guess. Setting aside 'hidden3d', which does its
own ordering anyway, the 3D graph box has always been drawn in two
parts, IIRC: the back side edges are drawn before any plot elements, by
draw_3d_graphbox(..BACKGRID), the front elements are drawn later (...
FRONTGRID). In a true non-map 3D plot, drawing the entire border frame
in front would be wrong for every use except one: if you're trying to
create an M.C. Escher effect.
The fact that 'set border {front|back}' doesn't have an effect on the
3D graph box is explainable by two observations:
1) in 3D, the grid is in the baseplane, and has a much stronger relation
to the graph box. Some of the parameters for drawing the base grid may
not even exist outside draw_3d_graphbox. So it actually makes some
sense that 'set grid {front|back}' affects the border drawing, too.
2) Plain oversight: 'set border {front|back}' dates 2005-04-14, whereas
the draw_3d_graphbox() code hasn't been touched since the 4.0 release.
> Probably the 'set view map' case should follow the 2D behaviour
> rather than the current 3D behaviour.
>
>> If this is a case, then all border lines should consistently of the same
>> width.
>
> They are. The effect you are seeing may be due to the pm3d
> rectangles not being centered with respect to the same original as
> the line segments.
>
>> Further, they don't respect the "front" flag.
>
> See above.
>
|