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 : [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
___________________________________________________________________________________