Wednesday, November 16, 2005 Giuseppe Bilotta wrote:
Wednesday, November 16, 2005 Giuseppe Bilotta wrote:
Does MetaFun provide some macro to draw oriented paths? I would like it to basically add a small arrow *in the middle* of the path? Such a macro
draworiented somepath somespecs ;
would have to act like
drawarrow firsthalf(somepath) somespecs ; draw secondhalf(somepath) somespecs ;
Is it available already, or should I roll my own?
Hm. I came up with
def draworiented expr c = path _c_ ; _c_ := c ; do_draworiented enddef ;
def do_draworiented text t = draw _c_ t ; drawarrow subpath(0, length(_c_)/2) of _c_ ; enddef;
which works, although I have to do
draworiented (reverse p1)
Is there an easy way to have it work with
draworiented reverse p1 ?
Oh sorry it works ... however, it traces half of the curve twice. So I came up with the next: def draworiented expr c = path _c_ ; _c_ := c ; do_draworiented enddef ; def do_draworiented text t = drawarrow subpath(0, length(_c_)/2) of _c_ t ; draw subpath(length(_c_)/2, length(_c_)) of _c_ t ; enddef; This still isn't perfect, but it works. It needs a little tuning so that the arrow is more centered, and of course it could be improved to put the arrow at any arbitrary point on the path. -- Giuseppe "Oblomov" Bilotta