[R] getting lines with non-rounded caps?

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Sep 20 12:16:59 CEST 2000

> Date: Wed, 20 Sep 2000 10:50:08 +0200
> To: Trent Piepho <xyzzy at speakeasy.org>
> From: Emmanuel Paradis <paradis at isem.univ-montp2.fr>
> Subject: Re: [R] getting lines with non-rounded caps?
> Cc: r-help at stat.math.ethz.ch
> At 11:31 19/09/00 -0700, you wrote:
> >I'm trying to get a plot with wide lines that don't have rounded end caps. 
> >You can see the effect quite clearly with a plot like this:
> >
> >plot(0:1)
> >lines(c(1.5,1.5),c(0,.5),lwd=20,col="red")
> >lines(c(1.5,1.5),c(.5,1),lwd=20,col="green")
> >abline(h=0)
> >abline(h=0.5)
> >abline(h=1)
> >
> >The colored lines should be between the horizontal lines, but because of the
> >rounded end caps, they aren't.
> >
> >Under X11, if I set lty to something like "F0", the end caps are turned off. 
> >Unfortunately, the "0" appears to get ignored, and the line style is the same
> >as "FF", i.e. 16 units of drawn line, then 16 units of space.
> >
> >With the postscript device, lines styles like "FF" still get rounded end
> caps,
> >unlike X11.
> Hi,
> This is a behaviour I already noticed under Windows NT when using plot(...,
> type="h", lwd=10), so that the thickness of the lines is expanded all
> around their starting- and end-points, rather than only perpandicularly to
> the lines (which was what I expected). A workaround for the example you
> give is to use rect()

It may be what you expected, but it is not what normally happens in
computer graphics.  The idea is that the line is drawn with a round pen
of radius lwd.  If you use a flat-ended pen, you get problems when a
line changes direction discontinuously (and polylines do), as the
line appears half-broken on the outside.

PostScript has different options for the internal changes of
direction (setlinejoin) and the ends (setlinecap).  So does X11, and I
see that the devX11 device uses JoinRound, and CapRound if lty=0
otherwise CapButt.

Is there a case for adding cap-style and join-style to the line type options?
I am not sure if all the devices could support them.  In particular,
I don't know if it is possible to achieve different internal and
end effects under the Windows graphics model.

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list