|
From: Ethan M. <merritt@u.washington.edu> - 2003-10-22 04:42:20
|
On Monday 20 October 2003 23:14, Alan G Isaac wrote: > Basic user interface issue: > set arrow from ptA to ptB > will be expected to do precisely that: > start at ptA and end at ptB. Gnuplot does that now. What we are disagreeing about is the meaning of the word "precisely". > Basic implementation issue: > there should be no ambiguity about what "from" and "to" mean. > Additionally, for filled arrows (and on capable terminals > *all* heads can be drawn as filled) this keeps the drawing > computations as simple a possible. (Related to this: > an arrow without a head should start and stop and the > same precise location as an arrow with a head!) But all of this is true right now, so far as I know. You may not like the behavior, but that doesn't mean it is ambiguous. > Finally, on the interpretation of where an arrow goes, I am > not proposing an idiosyncratic interpretation. To the > contrary, I believe it is very standard. (Compare e.g. the > LaTeX picture environment.) =20 But TeX conceives of arrows as characters, and as such they are entirely enclosed within a conceptual character cell. If you want to embed TeX/LaTeX arrows in your gnuplot figure, you can do so using 'set term post enhanced' By contrast think of line segments in gnuplot as a connect-the-dots process: place a dot at the "from" position, place another at the "to" position, then connect them. > And contrary to Ethan's claim, > I argue that this provide a good match for how lines are > handled. Lines are generally expected *not* to project > beyond the path endpoint. Using PostScript terminology, the > natural presumption is a butt cap, and this is the natural > default.=20 People's expectations obviously vary, and this leads to complaints from time to time. In particular, the PostScript and X11=20 implementation of butt caps causes the line segment to terminate along a line perpendicular to the direction of the line segment itself. This means that in general it overshoots the x-coordinate, the y-coordinate, or both, of the "to" specification. There was, for example, a recent complaint here that line segments=20 should never extend beyond the x-coordinate specified; i.e. the line segment fill should always be clipped against a vertical boundary at the endpoints. Furthermore, butt caps cause very ugly line joins. See previous discussions about the use of polylines=20 rather than individual line segments in X11. > Ethan seems to be suggesting that choosing a > projecting square cap should be the default. I cannot > recognize this as a standard practice. No. I personally think that rounded ends are best. But it should be left up to the user, as it is now. =20 > But after all is said and done, they key issue is: what will > users expect, and what makes it easiest for them to achieve > precisely what they desire in a predictable fashion? I was > personally startled to find that arrows project past their > assigned end point But they don't. They extend exactly to the specified=20 endpoint *** to the resolution of the pen used ***. > What is more, with > this behavior it is essentially impossible for me to make an > arrow terminate precisely where I wish it to. I don't see why. Can't you just specifiy a very thin pen width and a filled arrowhead? Stroke the tail of the arrow separately if you want that part thicker. --=20 Ethan A Merritt merritt@u.washington.edu Biomolecular Structure Center Box 357742 University of Washington, Seattle, WA 98195 |