These examples are taken from the gallery on Asymptote's website. We start by installing the asymptote IPython magics remotely.
In [1]:
# Install the IPython magic extension
%install_ext http://raw.github.com/azjps/ipython-asymptote/master/asymptote.py
In [2]:
# Load the extension
%reload_ext asymptote
In [3]:
%%asy
size(250);
real a=3;
real b=4;
real c=hypot(a,b);
transform ta=shift(c,c)*rotate(-aCos(a/c))*scale(a/c)*shift(-c);
transform tb=shift(0,c)*rotate(aCos(b/c))*scale(b/c);
picture Pythagorean(int n) {
picture pic;
fill(pic,scale(c)*unitsquare,1/(n+1)*green+n/(n+1)*brown);
if(n == 0) return pic;
picture branch=Pythagorean(--n);
add(pic,ta*branch);
add(pic,tb*branch);
return pic;
}
add(Pythagorean(12));
Out[3]:
Using the -f --outformat
argument, the output format of the image can be changed. By default the image is output as a png. Asymptote may require additional configurations or third party programs (ImageMagick) for additional formats.
In [4]:
%%asy -f png
import graph3;
import palette;
import contour3;
size(400);
real f(real x, real y, real z) {
return cos(x)*sin(y)+cos(y)*sin(z)+cos(z)*sin(x);
}
surface sf=surface(contour3(f,(-2pi,-2pi,-2pi),(2pi,2pi,2pi),12));
sf.colors(palette(sf.map(abs),Gradient(red,yellow)));
currentlight=nolight;
draw(sf,render(merge=true));
Out[4]:
A local asymptote code file can also be compiled and displayed if its specified as the argument to an asy file:
In [5]:
!head fin.asy
In [6]:
%asy fin.asy
Out[6]:
We can also interactively append asymptote code to these files:
In [7]:
%%asy fin.asy
label("I added this new label right now!", (2.0,0,0), NE);
Out[7]:
To save the intermediate .asy
code file and output image, use the -r --root
argument.
In [8]:
%%asy --root cube
import three;
currentprojection=orthographic(5,4,2, center=true);
size(5cm);
size3(3cm,5cm,8cm);
draw(unitbox);
dot(unitbox, red);
label("$O$", (0,0,0), NW);
label("(1,0,0)", (1,0,0), S);
label("(0,1,0)", (0,1,0), E);
label("(0,0,1)", (0,0,1), Z);
Out[8]:
In [9]:
!head cube.asy