MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Problem/bug with ends of thick lines in graphics

  • To: mathgroup at smc.vnet.net
  • Subject: [mg88373] Problem/bug with ends of thick lines in graphics
  • From: David Reiss <dbreiss at gmail.com>
  • Date: Sat, 3 May 2008 06:16:51 -0400 (EDT)

In a quick search of things I haven't found a mention of the following
simple graphics issue and I'm checking in with the group to see if
there is a memory of its mention and if there is a simple fix (and
which is not a complicated hack) that I've not been able to come up
with.

Consider the following graph:

Plot[x, {x, 1/3, 3/4}, PlotRange -> {{0, 1}, {0, 1}},
 PlotStyle -> {AbsoluteThickness[20]}]

When you plot it you will see that the line's ends are not
rectangular, whereas you would certainly want them to be so. (An
alternative would be to have them be rounded, for example, but the
question will remain the same whatever your preference is.)  Rather
they appear as polygonal in a way inconsistent with the line itself.

One assums that this is an artifact of how the line is rendered based
on the individual line segments, and that that segmental rendering has
to do something with how a segment relates to the segments on either
side of it.  The lack of a segment beyond the end segment presumably
runes the algorithm for rendering in a way that leads to this
appearance.

I have two related questions here.  The first is how, if at all
possible, to fix this in a general way through some specific options
settings for the graphics function.

The second is how, when exporting this graphic as, say, a PDF, to make
it behave properly.

There was a trick in pre version-6 Mathematica that would involve
adding an explicit postscript command to the PlotStyle option.  Though
this would not (I think) correct the screen appearance of the graphic,
it would properly fix it when the graphic was exported to PDF or EPS.
Here is an example of how it was done:

Plot[x, {x, 1/3, 3/4}, PlotRange -> {{0, 1}, {0, 1}},
 PlotStyle -> {{ PostScript["0 setlinecap"],AbsoluteThickness[20]}}]

This, however, no longer works in Mathematica 6+ presumably because of
the new way that graphics rendering is handled.

Does anyone have any solutions to either or both of these issues?

Thanks!

--David


  • Prev by Date: Re: partial differential equation of diffusion
  • Next by Date: ExtraAxes for Plot[]
  • Previous by thread: Re: MenuView inside Manipulate
  • Next by thread: Re: Problem/bug with ends of thick lines in graphics