[metapost] rt does not work with drawarrow

Wolfgang Schuster schuster.wolfgang at googlemail.com
Mon Mar 12 19:32:55 CET 2007


On Mon, 12 Mar 2007 11:57:40 -0500 (EST)
Aditya Mahajan <adityam at umich.edu> wrote:

> Hi,
> 
> I want to draw an arrow from a point to a line such that the tip of 
> the arrow just touches the edge of the line. By default the tip of the 
> arrow moves a bit into the line.
> 
> I tried rt operator with linecap = butt, which gives the desired 
> behaviour for lines, but not for arrows. Any hints on how to modify 
> the definition of arrowhead so that rt/left/top/down operators are 
> honored, or any other way to achieve the desired effect, without 
> manually adjusting the length of the line segment?
> 
> Here is my attempt:
> 
> beginfig(1)
>    numeric u ; u := 1cm;
>    linecap := butt ;
> 
>    pair a, b, c;
>    a := origin;
>    b := (2u,0) ;
>    rt c = (2u,0) ;
> 
>    path line ; line := (2u,u) -- (2u,-u) ;
> 
>    draw line ;
>    draw a--b withcolor red ;
>    draw (a--c) shifted (0,0.5u) withcolor red ;
>    currentpicture := currentpicture shifted (-4u,0) ;
>    draw line ;
>    drawarrow a--b withcolor red ;
>    drawarrow (a--c) shifted (0,0.5u) withcolor red ;
                  ^^^
                 "lft c" instead "c" works

>    setbounds currentpicture to (bbox currentpicture) scaled 1.1;
> endfig;
> 
> end;
> 
> 
> Thanks,
> Aditya

Wolfgang


More information about the metapost mailing list