[NTG-context] drawarrow and transparency

Alan BRASLAU alan.braslau at cea.fr
Thu May 3 12:32:47 CEST 2012


On Wed, 2 May 2012 21:42:24 +0200
Marco <netuse at lavabit.com> wrote:

> On 2012-05-02 Alan BRASLAU <alan.braslau at cea.fr> wrote:
> 
> > For  example, in  the minimal  example below,  how can  one obtain
> > a  transparent  arrow  without  getting an  X-ray  vision  of  the
> > arrowhead?
> 
> Maybe I'm  reinventing the  wheel here,  but you  can write  a small
> macro that only draws the lines you want. Here is an idea:
> 
> \starttext
> \startMPpage
> 
> 	linecap  := squared;
> 	penscale := .5bp;
> 	pickup pencircle scaled penscale;
> 
> 	def drawmyarrow expr p = _apth:=p; _myfinarr enddef;
> 	def _myfinarr text t =
> 		draw _apth cutafter point (-ahlength+.1penscale) on
> _apth t; fill arrowhead _apth  t
> 	enddef;
> 
> 	drawarrow   origin    -- (1cm,0)     withtransparency(1,.5) ;
> 	drawarrow   origin    -- (0,1cm)     withtransparency(1,.5) ;
> 	drawmyarrow (1.5cm,0) -- (2.5cm,0)   withtransparency(1,.5) ;
> 	drawmyarrow (1.5cm,0) -- (1.5cm,1cm) withtransparency(1,.5) ;
> 
> \stopMPpage
> \stoptext
> 
> The (-ahlength+.1penscale)  are of  course empiric. You  should find
> the correct  formula to always have  a nice match of  line and arrow
> whatever ahlength and ahangle values are in use.
> 
> Marco

Yes, this is somewhat reinventing the wheel.

I believe that this is somewhat a bug with transparency under MetaFun.
For I tried the following:

\startMPcode
	picture pic ; pic := image(drawarrow origin--(1cm,0)) ;

	draw pic withtransparency(1,.5) ;
	draw pic rotated 90 withtransparency(1,.5) ;
\stopMPcode

Here, the arrowhead is totally opaque and only the "stem"
has transparency. Something is fishy.

Alan


More information about the ntg-context mailing list