[NTG-context] MetaPost cutdraw

Mikael Sundqvist mickep at gmail.com
Wed Jul 6 23:04:00 CEST 2022


Hi,

On Wed, Jul 6, 2022 at 11:29 AM Henning Hraban Ramm via ntg-context
<ntg-context at ntg.nl> wrote:
>
> Am 06.07.22 um 09:15 schrieb Hans Hagen via ntg-context:
> > On 7/6/2022 7:10 AM, Aditya Mahajan via ntg-context wrote:
> >> On Wed, 6 Jul 2022, Henning Hraban Ramm via ntg-context wrote:
> >>
> >>> Hi, I’m trying to understand MetaPost better.
> >>>
> >>> I’d like to draw a fat line that’s cut at its end points.
> >>
> >> You mean like linecap = butt?
>
> Yes, but that doesn’t behave differently.
>
>
> > \startMPpage[offset=5mm]
> >      path p;
> >
> >      p := origin -- (7cm,0);
> >
> >      interim  linecap := squared;
> >
> >      draw p withpen ((pensquare            ) scaled 5mm) withcolor red ;
> >      draw envelope  ((pensquare            ) scaled 5mm) of p withcolor
> > green ;
> >      draw envelope  ((pensquare rotated eps) scaled 5mm) of p withcolor
> > blue ;
> > \stopMPpage
> >
> > (there is an "ontarget" chapter about envelopes; mikael and i spent
> > quite some time figuring out a few things but in the end conclused that
> > mp des the right thing given the strategy it folows but it definitely
> > has side effects)
>
> Thank you for the insight, but does that mean I can’t get my “butt
> capped” lines and I must shorten the lines by half the pen size?
>
> Hraban
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________

Hraban,

with the new upload you can do

\startMPpage[offset=1dk]
pickup pencircle scaled 4 ;
path p ; p := origin -- (20,0) ;
draw p withcolor darkyellow ;
draw p yshifted 5 withlinecap butt withcolor darkred ;
draw p yshifted -5 withlinecap squared withcolor darkgreen ;
for i within currentpicture :
drawpoints pathpart i withpen pencircle scaled 1 ;
endfor ;
\stopMPpage

That is, you can set linecap for each draw. I hope it helps.

/Mikael


More information about the ntg-context mailing list