Asymptote: Drawing
Contents
Dots
Let us start off with the most basic of this basic command: drawing a dot.
To draw a dot, simply write the following code: pair C=(0,0); int a=24; pair A=C+(0, a); pair B=A+(10,0); pair E=C-(0,a); pair D = E -(18,0);
draw(C--A--B--C--D--E--C);
draw(rightanglemark(C, A, B, 60)); draw(rightanglemark(C,E,D, 60));
label("", C, W);
label("
", A, NW);
label("
", B, NE);
label("
", E, SE);
label("
", D, SW);
int f=1; pair F=(A+C)/2; pair G=F-(f,0); pair H=F+(f,0); pair I=(C+E)/2; pair J=I-(f,0); pair K=I+(f,0); draw(G--H); draw(J--K);
label("", (D+E)/2, S);
label("
", (A+B)/2, N);
label("
", (B+C)/2, SSE);
label("
", (D+C)/2, NNW);
You can fix certain attributes to this dot, such as color:
dot((0,0),blue);
Circles
In this article, draw(circle((0,0),5));
We see that the first draw() command creates the circle, which uses the circle() command. How this works is that the circle() command produces a path in which the draw() command draws. Within the circle command, we see the center point is located at the cartesian plane point (0,0), and it has a radius of 5.
This code produces:
Once again, we can fix certain attributes to this code:
draw(circle((0,0),5),red+linewidth(1));
And we can fill the inside:
filldraw(circle((0,0),5),green,red+linewidth(1));
Ellipse
Another rounded figure we can create is the ellipse.
draw(ellipse((0,0),5,3));
In this case, the (0,0) is the center of the ellipse, the 5 is the length of the major axis and the 3 is the length of the minor axis. This results in:
Once again, we can fix attributes and fill the inside.
Unit- Paths
There are several useful pre defined paths for drawing things like unit squares, unit circles, etc. Just use the unit- paths!
You can use the
unitsquare unitcircle
paths for 2D. A list of Unit- paths for 3D can be found in the "Definitions": section of Asymptote: 3D graphics
Here is the unitsquare command:
draw(unitsquare); yields
And the unitsphere command.(Note: you have to import the three module for this to work.)
import three;
draw(unitsphere,pink);
yields
Since the unit- variables are paths, you can assign pen, fill them, and define other paths as them:
path u=unitcircle; pen p=red+dashed; draw(u,p);
yields