[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
example.

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,

Peter


** 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