Dear Hans,

Thank you for the suggestion to use "setbounds".
And sorry to send you a untested sample file which is not working.

However, I couldn't succeed because of my lack of knowledge on "setbounds, 
boundingbox".

Instead, I try to use "addto" and get a wanted result.
There is a better way to do that, but it is not easy for me to find a better 
way right now.
Here is a tested sample code.

\startbuffer[dominos]
picture finalpicture;

def dominoV (expr m,n, i, j) =
numeric dx, dy, DieSize,corner_rad;
path p, DominoFace;
DieSize := 1cm;
corner_rad := 1/12;
DominoFace := (1,0)--(1,1)--(corner_rad, 1){left}..{down}(0,1-corner_rad)       
..(0,corner_rad){down}..{right}(corner_rad,0)
..(2-corner_rad,0){right}..{up}(2,corner_rad)
..(2,1-corner_rad){up}..{left}(2-corner_rad,1)--(1,1);
currentpicture := nullpicture;
dx := 1.1*i*DieSize;
dy := 2.1*j*DieSize;
draw DominoFace scaled DieSize rotated 270;
%draw pips[m] scaled DieSize;% shifted (dx, dy);
%draw pips[n] scaled DieSize shifted (DieSize, 0) ;
addto finalpicture also currentpicture shifted (dx, dy);
currentpicture := nullpicture;
enddef;

finalpicture := nullpicture;
dominoV (6, 0, 0, 0);
dominoV (5, 1, 1, 0);
dominoV (4, 2, 2, 0);
dominoV (3, 3, 3, 0);
currentpicture := finalpicture;
\stopbuffer

\starttext
\processMPbuffer[dominos]
\stoptext

Thank you again.

Best regards,

Dalyoung

On 2011. 6. 23., at 오후 4:41, Hans Hagen wrote:

> On 23-6-2011 6:32, Jeong Dalyoung wrote:
>> Hi all,
>> 
>> I got the reason why the pictures locate in different position.
>> "rotation" causes the problem.
>> 
>> I defined domino as follows.
>> It is not the exact code but just show the form of the codes.
>> 
>> ....
>> def domino (a, b, c, d  )
>>      save pic;
>>      picture pic;
>>      draw something 1;
>>      draw something 2;
>>      pic := currentpicture;
>>      draw pic rotated 90 shifted ( c, d );
>> enddef;
>> 
>> and call it using
>> 
>> \startbuffer[domino3]
>>      domino (1, 2, 3, 4);
>>      domino (2, 1, 1, 2);
>>      domino (3, 3, 2, 3);
>> \stopbuffer
>> 
>> and \processMPbuffer[].
>> 
>> it draw the first domino at the right place, but it is rotated when the 
>> second domino is drawn. Hence, it actually rotated 180 degree. Also two 
>> dominos rotated again when the third domino is drawn.
>> Previous drawings are rotated again again when the function domino called.
>> 
>> How to avoid this problem? How to draw one figure and move to wanted 
>> position and draw another figure and move to another location without 
>> changing the previous figure?
>> 
>> If you want to see the whole codes, please see the attachment in the 
>> previous mail in ntg-context Digest, Vol 84, Issue 94.
> 
> set the boundingbox in each domino to the same size
> 
> -----------------------------------------------------------------
>                                          Hans Hagen | PRAGMA ADE
>              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
>                                             | www.pragma-pod.nl
> -----------------------------------------------------------------

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / 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
___________________________________________________________________________________

Reply via email to