[NTG-context] drawarrow and transparency

Peter Rolf indiego at gmx.net
Thu May 3 16:09:35 CEST 2012

Hi Alan,

Am 03.05.2012 12:32, schrieb Alan BRASLAU:
> 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)) ;

isn't 'image()' a fixed graphic? the only difference from normal drawing
is, that the stuff is not added to 'currentpicture'. think of it more
like a stamp, that is used to create identical copies.

anyhow, it's probably better and cleaner to use a macro here...

> 	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

what you want (if i understand you right) is a non-isolated 'knockout
group'. see 'PLATE 17'**, page 1147, in the pdf reference 1.7 for an

currently no grouping (objects are in the same transparency group) is
supported in metafun.
the only possible way to create such a graphic is to use the tikz module
(search for 'transparency group' in the tikz manual).

hope that helps,


** the complete graphic is a fake, because all of its parts are opaque,
pixel based graphics; not a single vector graphic, no transparency at
all! what a joke :-D
maybe adobe doesn't trust other (or their own) pdf viewers to show the
right result!?

More information about the ntg-context mailing list