Hi Alan, Am 03.05.2012 12:32, schrieb Alan BRASLAU:
On Wed, 2 May 2012 21:42:24 +0200 Marco
wrote: On 2012-05-02 Alan BRASLAU
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!?