Daniel Bundzik schrieb:
Hi!
How do you position/move a MPgraphic?
Let us us say that you have the MPgraphics "somebackground" and
"somecolorcircle" (See example below). These MPgraphics are both
framed and used as a background, upon which "sometext" is written on.
How can you freely move or position "somecolorcircle"? ( I want to
move "somecolorcircle" below "sometext") Naturally, I have read
Metafun and tried "shifted (x,y)", \definelayer, \setlayer, register,
\setMPlayer, \getMPlayer...
In general, if you have defined two or more MPgraphics how do you
position them (In my case "somebackground" is fixed while
"somecolorcircle" could be anywhere on "somebackground")?
Hi Daniel,
I attached a working example which uses layers. You should take a look
at the 'details.pdf' manual; link and more information can be found on
http://wiki.contextgarden.net/Layers
Just play around with the layer parameters and see what happens.
'height/width' (for layer definition), 'corner/location' (important to
understand!) and 'x/y' should be sufficient for most needs.
'hoffset/voffset' can be handy too, if you want relative positioning.
[pack-lyr.mkii]
\def\dodefinelayer[#1][#2]% \zeropoint ipv \!!zeropoint
{\setuplayer
[#1]
[\c!doublesided=,\c!preset=,
\c!state=\v!start,\c!direction=\v!normal,\c!option=,
\c!x=\zeropoint,\c!y=\zeropoint,\c!position=\v!no,
\c!line=0,\c!column=0,
\c!width=\nextboxwd,\c!height=\nextboxht,
\c!offset=\zeropoint,\c!rotation=, % geen 0 !
\c!hoffset=\zeropoint,\c!voffset=\zeropoint,
\c!dx=\zeropoint,\c!dy=\zeropoint,
\c!location=rb,\c!position=\v!no,\c!page=,
\c!method=\v!overlay,
\c!sx=1,\c!sy=1,\c!corner=,#2]%
\doifvalue{\??ll#1\c!doublesided}\v!yes
{\dopresetlayerbox{\v!left #1}%
\dopresetlayerbox{\v!right#1}}%
\dopresetlayerbox{#1}%
\defineoverlay[#1][\composedlayer{#1}]}
Best wishes, Peter
How would you solve this?
Regards,
Daniel
\setupcolors[state=start]
\setuppapersize[S6][S6]
\setuplayout [width=fit,
rightmargin=0cm,
leftmargin=0cm,
leftmargindistance=0pt,
rightmargindistance=0pt,
height=fit,
topspace=0cm,
header=0pt,
footer=0cm,
bottomspace=0cm,
backspace=0cm,
location=singlesided]
\definecolor[Orange][r=1.,g=.47,b=.0] % dark orange
\setupinteractionscreen[option=max]
\startbuffer[sometext]
\switchtobodyfont[sansserif,1.0cm]
\midaligned{\white \bf This is the text}
\stopbuffer
\starttext
\startuseMPgraphic{somebackground}
fill fullsquare
scaled 10cm
withcolor .625red ;
fill fullsquare
scaled 10cm
shifted (10cm,0)
withcolor black ;
fill fullsquare
scaled 10cm
shifted (20cm,0)
withcolor \MPcolor{Orange} ;
currentpicture := currentpicture
xysized(OverlayWidth+.5pt,OverlayHeight+.5pt) ;
\stopuseMPgraphic
\startuseMPgraphic{somecolorcircle}
colorcircle(2cm,white,.625red,\MPcolor{Orange}) ;
\stopuseMPgraphic
\startTEXpage
\definelayer[somelayer]%[width=600pt,height=450pt]
\setlayer[somelayer]
{\useMPgraphic{somebackground}}
\setlayer[somelayer][x=9.6cm,y=7.5cm]
{\useMPgraphic{somecolorcircle}}
\setlayer[somelayer][y=6cm]
{\getbuffer[sometext]}
\flushlayer[somelayer]
\stopTEXpage
\stoptext
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________