On 7/1/06, Idris Samawi Hamid wrote:

> draw ((2,6) -- (2,5))
> scaled 1cm withcolor .625red ;
>
> is not the same as
>
> draw ((2,6) -- (2,5))
> withcolor .625red ;
>
> currentpicture := currentpicture scaled 1 cm ;
>
> I did find the
>
> u := 1cm;
> z[1]  = (2u,6u) ;
>
> method; is there another way, a macro perhaps?

What about this one?

        save u; numeric u; u = 1cm;

        % point[x][y][z]  x,y,z are coordinates (each one can be 1 or 2)
        % put one point to a fix location
        z111 = origin;

        % same y coordinate
        y111 = y211;  y121 = y221;  y112 = y212;  y122 = y222;

        % same x coordinate
        x111 = x121;  x112 = x122;  x211 = x221;  x212 = x222;

        % face
        x211 - x111 = y121 - y111 = 5u;

        % define the diagonals (you could define other relations instead)
        z112 - z111 = z122 - z121 = z212 - z211 = z222 - z221 = (2u,1u);

But you could also define them using something like

for i=0 upto 1:
  for j=0 upto 1:
    for k=0 upto 1:
      z[i][j][k] = (i+k*something,j+k*somethingelse) scaled u;
    endfor;
  endfor;
endfor;

I guess that you could draw the dashed lines by only clipping the path.

Metapost is a magician. You almost never need to manually calculate anything!

Mojca
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to