[metapost] Re: Asymptote

John Bowman bowman at math.ualberta.ca
Sun Aug 28 07:34:04 CEST 2005


Hi Laurent,

> You have been busy with your 2 partners!

One of them, Andy Hammerlindl, is now one of your graduate students.

> 
> One suggestion concerning the Asymptote web page:
> The sample graphics should be offered in a
> PDF version as well as the quick ".gif" version.
> Clicking on the ".gif" image could cause the PDF version 
> to be downloaded or viewed.

Simply clicking on the Asymptote gallery images will download a pdf file.
Clicking on the name will show you the source code. 

> 
> Questions:
>  
>  --- How does "Asymptote" compare with "metapost"
> in speed of execution?  Benchmarks?

This MetaPost example takes 0.3 seconds on a 1.4GHz IBM T41 laptop:

beginfig(-1);

for n=1 upto 6:
for m=1 upto 1000:
draw (100,0)..(0,100)..(-100,0)..(0,-100)..cycle;
endfor;
endfor;

endfig;
end

This equivalent Asymptote code takes 0.65 seconds when run with the --noplain
option:

frame f,preamble;
pen p;

for(int i=0; i < 6000; ++i)
  draw(f,(100,0)..(0,100)..(-100,0)..(0,-100)..cycle,p);
  
shipout("",f,preamble,"",false,new transform[],new bool[]);

Normally, we draw to pictures, which due to the deferred drawing & simplex
linear programming problem, slow things down to 2.1 seconds. But that is
only because it is doing more work:

size(100);
for(int i=0; i < 6000; ++i)
  draw((1,0)..(0,1)..(-1,0)..(0,-1)..cycle);

> 
>  --- What is your approach to 3D?

It's a 3d extension of John Hobby's algorithms on page 131 of
Knuths's monograph The MetaFontbook (which I'm planning on submitting to
Discrete & Computational Geometry soon). See the surface.asy example and the
documentation of the three.asy module to get an idea about what we have done.

I hope you enjoy using Asymptote,

-- John

John Bowman
University of Alberta



More information about the metapost mailing list