|
From: Harald H. <h.h...@tu...> - 2005-10-16 20:03:40
|
On Sun, 16 Oct 2005, Ethan A Merritt wrote:
> On Sunday 16 October 2005 12:02 pm, Harald Harders wrote:
> >
> > But I still do not understand what it does. Because the variable canvas
> > is a pure copy of { 0, term->xmax, 0, term->ymax }. Why do we now have
> > the term->xmax and term->ymax and a copy of them?
>
> Because it abstracts the notion of a clipping area to the generic case.
> The 15 Oct patch by itself does nothing. Previously the routines
> clip_line() and clip_point() were hard-coded to clip against the plot
> boundaries. Now they have been generalized to clip against whatever
> the current clipping area is.
>
> > What does it really do?
>
> "Patience, grasshopper". It paves the way.
Okay, I will be patient.
> > Try this:
> >
> > set size 2,2
>
> I am not interested in fixing bugs that arise from
> setting size > 1.
For me, it is one of the largest problems because I am working with the
epslatex and eps terminals with plots at 0.85 x 0.85, but sometimes
multiplots. These rely on sizes > 1 until we will have absolute measures.
But I am not willing to change the old scripts that have worked with
former versions. Since the eps and epslatex terminal do not clip at all,
the labels work here. But the arrows need my local patch.
> I thought we had agreed to work
> toward making such kludges unnecessary.
Mmh, I think I have not made my opinion clear enough. I really like the
idea of absolute measures (mm, in, pt, pixels). But I also think that the
compatibility with old scripts has to be ensured (which is in accordance
with Hans-Bernhard's opinion). And many old script use the 'set size'
mechanism for setting the bounding box/canvas.
If we have the absolute measures new scripts will not rely on screen
coordinates above 1.
Let me conclude:
I want a solution that can be agreed by everyone. Since the opinions of
you and Hans-Bernhard seem nearly incompatible I see one solution that may
be agreeable by both of you:
Introduce a new method for scaling the canvas, using absolute measures
(mm, in, pt, pixels). I propose to introduce a common set command that can
be given independently on the 'set terminal' line, e.g.,
set canvas mm 50,30
set terminal <whatever>
The 'size' option of the different terminals could serve as alternative to
set the canvas.
In addition, all things that can be given in screen coordinates at the
moment (labels, arrows, offsets, ...) and the size of multiplots
(set size) can be given in the absolute units (mm, ...).
But, the 'set size' method should be maintained since it is used by many
existing scripts. A warning should be issued:
Using `set size` for resizing the canvas is deprecated. Use `set canvas`
instead. Beware that `set canvas` uses the screen coordinate 1,1 for the
upper right corner, in contrast to `set size`.
By this approach, we create a clean method for resizing the canvas and we
maintain compatibility with existing scripts. But this also means that we
have to deal with the clipping problem 'size > 1'.
And, please discuss these important changes with us, uploading a patch,
before applying them to cvs.
Regards
Harald
--
Harald Harders
h.h...@tu...
http://www.harald-harders.de
|