Re: [NTG-context] Drawing oriented paths in MetaFun

2005-11-16 Thread Giuseppe Bilotta
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 ?

-- 
Giuseppe Oblomov Bilotta

___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


Re: [NTG-context] Drawing oriented paths in MetaFun

2005-11-16 Thread Hans Hagen

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?

 


it's there; watch out, i just added a scaling option

\starttext

\setupcolors[state=start]

\startMPpage

vardef arrowheadonpath (expr p, s) =
 save autoarrows ; boolean autoarrows ; autoarrows := true ;
 set_ahlength(scaled ahfactor) ; % added
 arrowhead p if s1 : cutafter (point (s*arclength(p)+.5ahlength) on p) fi
enddef ;

path p ; p := (0,0)--(10cm,10cm) ;

draw p withcolor red ;
ahfactor := 5 ; % default is 2.5
fill arrowheadonpath(p,.5) withcolor blue ; % try .25

currentpicture := currentpicture xsized (10cm) ;
\stopMPpage

\stoptext

___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


Re: [NTG-context] Drawing oriented paths in MetaFun

2005-11-16 Thread Hans Hagen

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 ?

 

add another step (do_do_) , first pick up 'reverse p1' as expression, 
save that in a path variable, and then pick up the text


Hans

___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context