Difference between revisions of "Asymptote: Useful commands and their Output"

m (cycle3 is obsolete; use cycle instead)
Line 111: Line 111:
 
  size(50);
 
  size(50);
 
  currentprojection=orthographic(1/2,-1,1/2); // three - currentprojection, orthographic
 
  currentprojection=orthographic(1/2,-1,1/2); // three - currentprojection, orthographic
  draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle3,red); //three - cycle3
+
  draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle,red);
 
  draw((0,0,0)--(0,0,1));
 
  draw((0,0,0)--(0,0,1));
 
  draw((0,1,0)--(0,1,1));
 
  draw((0,1,0)--(0,1,1));
 
  draw((1,1,0)--(1,1,1));
 
  draw((1,1,0)--(1,1,1));
 
  draw((1,0,0)--(1,0,1));
 
  draw((1,0,0)--(1,0,1));
  draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle3,green);
+
  draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle,green);
  
 
'''Output 8:'''
 
'''Output 8:'''
Line 123: Line 123:
 
  size(50);
 
  size(50);
 
  currentprojection=orthographic(1/2,-1,1/2); /* three - currentprojection, orthographic */
 
  currentprojection=orthographic(1/2,-1,1/2); /* three - currentprojection, orthographic */
  draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle3,red); /*three - cycle3 */
+
  draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle,red);
 
  draw((0,0,0)--(0,0,1));
 
  draw((0,0,0)--(0,0,1));
 
  draw((0,1,0)--(0,1,1));
 
  draw((0,1,0)--(0,1,1));
 
  draw((1,1,0)--(1,1,1));
 
  draw((1,1,0)--(1,1,1));
 
  draw((1,0,0)--(1,0,1));
 
  draw((1,0,0)--(1,0,1));
  draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle3,green);</asy>
+
  draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle,green);</asy>
  
 
'''Examples in Forum'''
 
'''Examples in Forum'''

Revision as of 22:43, 6 October 2008

Asymptote (Vector Graphics Language)
Getting Started - Basics - Drawing - Labeling - Filling - Useful functions - Examples - Macros and Packages

Help - Reference - Advanced Asymptote - 3D Graphics - CSE5 Package - How to

For each of the following, we have put a blue dot at the origin in order to indicate relative location of the output on the coordinate plane. In other words, assume that before each of the examples below is the command

dot((0,0),blue);

In addition, a comment after a line such as //math - extension indicates that the command (in this case extension) used in that line is defined in the math package, thus motivating the import math; (or other appropriate package) line at the top of the example.


Example 1:

dot((20,0));

Output 1: [asy]dot((20,0));[/asy]


Example 2:

draw((0,0)--(50,0),BeginArrow);
draw((0,-10)--(50,-10),MidArrow);
draw((0,-20)--(50,-20),EndArrow);
draw((0,-30)--(50,-30),Arrows);

Output 2: [asy] size(75);draw((0,0)--(50,0),BeginArrow);  draw((0,-10)--(50,-10),MidArrow);  draw((0,-20)--(50,-20),EndArrow);  draw((0,-30)--(50,-30),Arrows);[/asy]


Example 3:

draw((0,0)--(50,0));
arrow((30,0),dir(180),green);

Output 3: Figure4.gif


Example 4:

import math;
pair A,B,C,D,E;
A=(0,0); C=(50,0); B=(10,10); D=(40,20);
E=extension(A,B,C,D);  // math - extension
// extension(A,B,C,D) returns the intersection of lines AB and CD
draw(A--B); draw(C--D);
draw(B--E--D,orange);

Output 4: Figure5.gif


Example 5:

import graph;
draw(Circle((0,0),20)); // graph - Circle

Output 5: Figure6.gif


Example 6:

path p=(0,0)..(20,15)..(40,-5)..(50,0);
draw(p);
draw(rotate(90)*p,green);
draw(rotate(180,(-5,0))*p,orange);
draw(shift((5,20))*p,magenta);
draw(shift((0,-25))*yscale(1.4)*p,red);

Output 6: Figure7.gif


Example 7:

import olympiad;
unitsize(50);
pair A,B,C,O,I;
A=origin; B=2*right; C=1.5*dir(70);
O=circumcenter(A,B,C); // olympiad - circumcenter
I=incenter(A,B,C); // olympiad - incenter
draw(A--B--C--cycle);
dot(O);
dot(I);
draw(circumcircle(A,B,C)); // olympiad - circumcircle
draw(incircle(A,B,C)); // olympiad - incircle
label("$I$",I,W);
label("$O$",O,S);

Output 7: [asy]  import olympiad;  size(75);  pair A,B,C,O,I;  A=origin; B=2*right; C=1.5*dir(70);  O=circumcenter(A,B,C); /* olympiad - circumcenter */  I=incenter(A,B,C); /* olympiad - incenter */  draw(A--B--C--cycle);  dot(O);  dot(I);  draw(circumcircle(A,B,C)); /* olympiad - circumcircle */  draw(incircle(A,B,C)); /* olympiad - incircle */  label("$I$",I,W);  label("$O$",O,S); [/asy]


Example 8:

import three;
unitsize(1cm);
size(50);
currentprojection=orthographic(1/2,-1,1/2); // three - currentprojection, orthographic
draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle,red);
draw((0,0,0)--(0,0,1));
draw((0,1,0)--(0,1,1));
draw((1,1,0)--(1,1,1));
draw((1,0,0)--(1,0,1));
draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle,green);

Output 8: [asy] import three;  unitsize(1cm);  size(50);  currentprojection=orthographic(1/2,-1,1/2); /* three - currentprojection, orthographic */  draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle,red);  draw((0,0,0)--(0,0,1));  draw((0,1,0)--(0,1,1));  draw((1,1,0)--(1,1,1));  draw((1,0,0)--(1,0,1));  draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle,green);[/asy]

Examples in Forum

Clicking on the images in the following examples will show you the Asymptote source.

Triangles, lines, tick marks, angle marks


See Also

Many more Asymptote examples

Next: Macros and Packages