Difference between revisions of "AoPSWiki:Sandbox"
Aquadragon (talk | contribs) (Created page with "<h1>Asymptote tutorial for AoPS</h1> <u>'''Table of Contents'''</u> '''The Name Asymptote'''<div class="mw-collapsible mw-collapsed"> [quote=fath2012]Why asympote is called a...") |
Mathninja9 (talk | contribs) (→Filling) |
||
(34 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | < | + | <span style="font-size: 200%; color: #27445C">'''Essential Reference for Using Asymptote in AoPS'''</span> |
− | < | + | A focused asymptote reference with examples and short code.<p style="margin-left: 40px"><small><br><i>Original source from eagle702 bulletin board post. Adapted and edited by <b>aquadragon.</b></i></small></p> |
+ | ---- | ||
+ | ==Introduction== | ||
+ | <br><dd> | ||
+ | === Why Asymptote is called Asymptote? === | ||
− | + | <blockquote>http://asymptote.sourceforge.net/FAQ/section1.html#whyasy | |
− | + | <dd><b>Question 1.4. Why was the name Asymptote chosen?</b> | |
− | + | ||
− | Question 1.4. Why was the name Asymptote chosen? | + | <i>Well, it isn't the perfect graphics package, but we do think it is getting there asymptotically...</i></dd> |
− | Well, it isn't the perfect graphics package, but we do think it is getting there asymptotically... | + | </blockquote> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Tips === | |
− | |||
− | |||
− | |||
− | To | + | * To see the asymptote code of any diagram made with asymptote, click on the diagram and it will come up. |
+ | * If your code is not working check to make sure you have a semicolon after each line, no extra parentheses or brackets, and no open parentheses or brackets. | ||
+ | * Another thing to check if your code is not working, is to make sure every variable you've used in your code is in the pair. | ||
+ | </dd><br> | ||
− | < | + | == Beginning your code == |
+ | <dd> | ||
+ | To start your asymptote diagram you have to include [asy] at the beginning, and [/asy] at the ending. | ||
+ | </dd><br> | ||
+ | == Setting points == | ||
+ | <dd> | ||
+ | To create points in your diagram you can use | ||
+ | <code>A = (0,0);</code> | ||
Say you want to have point <math>B</math> <math>4</math> units to the right of point <math>A</math>, then you can use | Say you want to have point <math>B</math> <math>4</math> units to the right of point <math>A</math>, then you can use | ||
− | + | <code>B = (4,0);</code> | |
− | <code>B = (4,0);</code> | ||
− | |||
Setting points on your diagram is like setting points on a graph. The first number is the <math>x</math>-coordinate of the point and the second number is the <math>y</math>-coordinate of the point. | Setting points on your diagram is like setting points on a graph. The first number is the <math>x</math>-coordinate of the point and the second number is the <math>y</math>-coordinate of the point. | ||
Note: You should not use E, S, N, or W as variables, instead you should use EE, SS, NN, and WW, but label them as E, S, N, W. This is because E, S, N, and W are used to indicate directions in asymptote. | Note: You should not use E, S, N, or W as variables, instead you should use EE, SS, NN, and WW, but label them as E, S, N, W. This is because E, S, N, and W are used to indicate directions in asymptote. | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | == Pair part 1 == | ||
+ | <dd> | ||
If you include variables in your diagram you have to have <math>\verb#pair#</math> somewhere in your code. | If you include variables in your diagram you have to have <math>\verb#pair#</math> somewhere in your code. | ||
Example: You have two points <math>A</math> and <math>B</math>, and you're drawing a line connecting them, you need to include | Example: You have two points <math>A</math> and <math>B</math>, and you're drawing a line connecting them, you need to include | ||
− | + | <code> pair A,B; </code> | |
− | |||
− | |||
in your diagram to make it work. | in your diagram to make it work. | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | ==Connecting two points, coloring the line'== | ||
+ | <dd> | ||
Once you have set variables <math>A</math> and <math>B</math>, you can connect them by writing | Once you have set variables <math>A</math> and <math>B</math>, you can connect them by writing | ||
− | <code>draw(A--B);</code> | + | <code>draw(A--B);</code> |
Example: | Example: | ||
Line 100: | Line 95: | ||
draw(A--B--cycle, dashed+red); | draw(A--B--cycle, dashed+red); | ||
</asy> | </asy> | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | == Labeling, Midpoint == | ||
+ | <dd> | ||
To label a point you can use | To label a point you can use | ||
Line 142: | Line 137: | ||
label("$x$", midpoint(A--B), NE); | label("$x$", midpoint(A--B), NE); | ||
</asy> | </asy> | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | == Angle Measures == | ||
+ | <dd> | ||
If you want to draw an angle measure on an angle use | If you want to draw an angle measure on an angle use | ||
Line 192: | Line 187: | ||
label(scale(.75)*"$90^\circ$", B, 2.5*dir(50)); | label(scale(.75)*"$90^\circ$", B, 2.5*dir(50)); | ||
</asy> | </asy> | ||
− | + | </dd><br> | |
− | |||
− | |||
− | + | == Distance Function == | |
+ | <dd> | ||
''' My distance function''' | ''' My distance function''' | ||
<code> | <code> | ||
Line 206: | Line 200: | ||
''' A note ''' | ''' A note ''' | ||
Apparently a pair has an x property and a y property. I kind of discovered this it by testing. I think it might be documented somewhere. | Apparently a pair has an x property and a y property. I kind of discovered this it by testing. I think it might be documented somewhere. | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | == Casting == | ||
+ | <dd> | ||
(Source: fath2012) | (Source: fath2012) | ||
''' Casting ''' | ''' Casting ''' | ||
Line 227: | Line 221: | ||
label((string) b,a,S); | label((string) b,a,S); | ||
</code> | </code> | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | == Right Angle Mark == | ||
+ | <dd> | ||
If you want to draw a right angle mark use this: | If you want to draw a right angle mark use this: | ||
Line 251: | Line 245: | ||
draw(rightanglemark(A,B,C,1.5)); | draw(rightanglemark(A,B,C,1.5)); | ||
</asy> | </asy> | ||
− | + | </dd><br> | |
− | + | ||
− | |||
+ | == Intersection == | ||
+ | <dd> | ||
If you want to draw a point on an intersection of two lines you can use: | If you want to draw a point on an intersection of two lines you can use: | ||
Line 278: | Line 273: | ||
F = intersectionpoint(A -- B, C -- D); | F = intersectionpoint(A -- B, C -- D); | ||
</asy> | </asy> | ||
− | + | </dd><br> | |
− | + | ||
− | |||
+ | == Filling == | ||
+ | <dd> | ||
To show you how to fill in a part of a diagram with a color I'll use an example from Week 3 Problem 5 in AoPS's Introduction to Geometry course. | To show you how to fill in a part of a diagram with a color I'll use an example from Week 3 Problem 5 in AoPS's Introduction to Geometry course. | ||
Line 370: | Line 366: | ||
Try out different colors to see which ones you prefer for your asymptote diagrams. | Try out different colors to see which ones you prefer for your asymptote diagrams. | ||
Have fun! | Have fun! | ||
− | + | </dd><br> | |
− | |||
− | |||
+ | == Dot == | ||
+ | <dd> | ||
If you want to draw a dot on a point on your diagram use | If you want to draw a dot on a point on your diagram use | ||
Line 392: | Line 388: | ||
<code>dot(A);</code> | <code>dot(A);</code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#13 Size''' | '''#13 Size''' | ||
− | + | <div class="mw-collapsible-content"> | |
To make your diagram larger or smaller you can use | To make your diagram larger or smaller you can use | ||
Line 431: | Line 428: | ||
draw(rightanglemark(A,B,C,1.5)); | draw(rightanglemark(A,B,C,1.5)); | ||
</asy> | </asy> | ||
− | + | </dd><br> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#14 Tick Marks''' | '''#14 Tick Marks''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
If you want to add tick marks to a line use | If you want to add tick marks to a line use | ||
Line 473: | Line 472: | ||
add(pathticks(A--B, 2, spacing=1, s=2)); | add(pathticks(A--B, 2, spacing=1, s=2)); | ||
</asy> | </asy> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#15 Arrows''' | '''#15 Arrows''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
If you want to draw arrow marks to show that two lines are parallel you can use | If you want to draw arrow marks to show that two lines are parallel you can use | ||
Line 492: | Line 493: | ||
draw(A--C, MidArrow(size=0.2cm)); | draw(A--C, MidArrow(size=0.2cm)); | ||
</asy> | </asy> | ||
− | + | <br></div></div> | |
− | + | <div class="mw-collapsible mw-collapsed" style="width:100%"> | |
+ | |||
'''#16 Shifting Coordinates''' | '''#16 Shifting Coordinates''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: fath2012) | (Source: fath2012) | ||
You can use these to shift coordinates if you're shifting lots of coordinates | You can use these to shift coordinates if you're shifting lots of coordinates | ||
Line 505: | Line 508: | ||
return (p.x,p.y + amount); | return (p.x,p.y + amount); | ||
}</code> | }</code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#17 Rotating''' | '''#17 Rotating''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: nosaj and Zhaom) | (Source: nosaj and Zhaom) | ||
Maybe if you really wanted to: rotate | Maybe if you really wanted to: rotate | ||
Line 515: | Line 520: | ||
</code> | </code> | ||
rotate B <math>x</math> degrees around center A is where C is. | rotate B <math>x</math> degrees around center A is where C is. | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#18 Circles''' | '''#18 Circles''' | ||
− | + | <br> | |
+ | <div class="mw-collapsible-content"> | ||
If you want to draw a circle use | If you want to draw a circle use | ||
Line 537: | Line 544: | ||
draw(Circle((0,0),0.4),p=green+1.5bp); | draw(Circle((0,0),0.4),p=green+1.5bp); | ||
</asy> | </asy> | ||
− | + | /<br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#19 Dashed Lines''' | '''#19 Dashed Lines''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: independentstudyproject) | (Source: independentstudyproject) | ||
If you want to draw a dashed line you can use | If you want to draw a dashed line you can use | ||
Line 560: | Line 569: | ||
dot(B); | dot(B); | ||
</asy> | </asy> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#20 Angle Mark''' | '''#20 Angle Mark''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: Zhaom & mag1c) | (Source: Zhaom & mag1c) | ||
To make an actual angle mark: | To make an actual angle mark: | ||
at the top do | at the top do | ||
− | <code | + | <code> |
import markers;</code> | import markers;</code> | ||
and then do for the angle: | and then do for the angle: | ||
Line 587: | Line 598: | ||
dot("A",A,SW*0.5); | dot("A",A,SW*0.5); | ||
</asy> | </asy> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#21 "for" Command''' | '''#21 "for" Command''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: Zhaom & heatherfinotti) | (Source: Zhaom & heatherfinotti) | ||
If you want to do the for thing you do | If you want to do the for thing you do | ||
Line 612: | Line 625: | ||
</asy></code> | </asy></code> | ||
[/hide] | [/hide] | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#22 Extension''' | '''#22 Extension''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
If you want to extend a line you can use this | If you want to extend a line you can use this | ||
Line 663: | Line 678: | ||
You have the extension <math>A, B,C,</math> and <math>I</math>, because you want it to go down from point <math>C</math>, through <math>I</math>, and end on <math>\overline{AB}</math>. | You have the extension <math>A, B,C,</math> and <math>I</math>, because you want it to go down from point <math>C</math>, through <math>I</math>, and end on <math>\overline{AB}</math>. | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#23 How to draw an equilateral triangle''' | '''#23 How to draw an equilateral triangle''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
In #23 we'll walkthrough how to make an equilateral triangle. | In #23 we'll walkthrough how to make an equilateral triangle. | ||
Line 731: | Line 748: | ||
</asy> | </asy> | ||
</code> | </code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#24 How to draw an isosceles triangle''' | '''#24 How to draw an isosceles triangle''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
In #24 we'll walkthrough how to make an isosceles triangle. | In #24 we'll walkthrough how to make an isosceles triangle. | ||
Let's start by placing <math>A</math> at <math>(0,0)</math>. | Let's start by placing <math>A</math> at <math>(0,0)</math>. | ||
Line 792: | Line 811: | ||
</asy> | </asy> | ||
</code> | </code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#25 How to draw a scalene triangle''' | '''#25 How to draw a scalene triangle''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
In #25 we'll walkthrough how to make a scalene triangle. | In #25 we'll walkthrough how to make a scalene triangle. | ||
Line 831: | Line 852: | ||
</asy> | </asy> | ||
</code> | </code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#26 Labeling Angles''' | '''#26 Labeling Angles''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: independentstudyproject) | (Source: independentstudyproject) | ||
This is similar to #6 but it labels the angle with the arc. | This is similar to #6 but it labels the angle with the arc. | ||
Line 850: | Line 873: | ||
label("$60^\circ$",(0.1,0.1),E); | label("$60^\circ$",(0.1,0.1),E); | ||
</asy> | </asy> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#27 Drawing triangles using SSS, SAS, AAS, and ASA''' | '''#27 Drawing triangles using SSS, SAS, AAS, and ASA''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: Zhaom) | (Source: Zhaom) | ||
drawing triangles: | drawing triangles: | ||
Line 919: | Line 944: | ||
label("$C$",C,SE); | label("$C$",C,SE); | ||
</asy>[/hide],then <math>A</math>=[hide][c](0,0);[/c][/hide],<math>B</math>=[hide][c]dir(c)*b;[/c][/hide],and <math>C</math>=[hide][c](a,0);[/c][/hide]. | </asy>[/hide],then <math>A</math>=[hide][c](0,0);[/c][/hide],<math>B</math>=[hide][c]dir(c)*b;[/c][/hide],and <math>C</math>=[hide][c](a,0);[/c][/hide]. | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#28 Arcs''' | '''#28 Arcs''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: Zhaom and heatherfinotti) | (Source: Zhaom and heatherfinotti) | ||
If you want to draw an arc you can use | If you want to draw an arc you can use | ||
Line 946: | Line 973: | ||
</asy> | </asy> | ||
</code> | </code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#29 The Nine Point Circle''' | '''#29 The Nine Point Circle''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: Zhaom) | (Source: Zhaom) | ||
The nine point circle: | The nine point circle: | ||
Line 1,001: | Line 1,030: | ||
</asy>[/hide] | </asy>[/hide] | ||
The center is N and the radius is r/2. | The center is N and the radius is r/2. | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#30 Pair Part 2''' | '''#30 Pair Part 2''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: Zhaom, eagle702) | (Source: Zhaom, eagle702) | ||
Another way to use the variables in the pair at the start of your code, is by using | Another way to use the variables in the pair at the start of your code, is by using | ||
Line 1,031: | Line 1,062: | ||
label("$B$", A[2], S); | label("$B$", A[2], S); | ||
</code> | </code> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#31 Finding the midpoint''' | '''#31 Finding the midpoint''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
(Source: fath2012) | (Source: fath2012) | ||
This is really just a tool from the documetation but here it is anyway. | This is really just a tool from the documetation but here it is anyway. | ||
Line 1,050: | Line 1,083: | ||
dot(midpoint(A--B)); | dot(midpoint(A--B)); | ||
</asy> | </asy> | ||
− | + | <br></div></div> | |
− | + | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:100%"> | ||
'''#32 Foot Command''' | '''#32 Foot Command''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
If you want to draw a perpendicular line from a point to another line, you can use the foot command: | If you want to draw a perpendicular line from a point to another line, you can use the foot command: | ||
<code>draw(A--foot(A,B,C));</code> | <code>draw(A--foot(A,B,C));</code> | ||
Line 1,091: | Line 1,126: | ||
</asy> | </asy> | ||
</code> | </code> | ||
− | + | <br></div></div> | |
− | + | <div class="mw-collapsible mw-collapsed" style="width:100%"> | |
+ | |||
'''#33 Introduction to 3D Geometry''' | '''#33 Introduction to 3D Geometry''' | ||
− | + | <div class="mw-collapsible-content"> | |
+ | <br> | ||
Making 3D figures in asymptote is a bit different from making 2D figures in asymptote. I'll state some of the differences here. | Making 3D figures in asymptote is a bit different from making 2D figures in asymptote. I'll state some of the differences here. | ||
Line 1,108: | Line 1,145: | ||
<code>A = (x,y,z);</code> | <code>A = (x,y,z);</code> | ||
<math>x</math> and <math>y</math> are the coordinates of the base of the 3D figure, and <math>z</math> is the height of the coordinate on the 3D figure.[/quote] | <math>x</math> and <math>y</math> are the coordinates of the base of the 3D figure, and <math>z</math> is the height of the coordinate on the 3D figure.[/quote] | ||
+ | <br></div></div> | ||
+ | </dd> |
Latest revision as of 11:42, 17 September 2024
Essential Reference for Using Asymptote in AoPS
A focused asymptote reference with examples and short code.
Original source from eagle702 bulletin board post. Adapted and edited by aquadragon.
Contents
[hide]Introduction
Why Asymptote is called Asymptote?
http://asymptote.sourceforge.net/FAQ/section1.html#whyasy
Question 1.4. Why was the name Asymptote chosen? Well, it isn't the perfect graphics package, but we do think it is getting there asymptotically...
Tips
- To see the asymptote code of any diagram made with asymptote, click on the diagram and it will come up.
- If your code is not working check to make sure you have a semicolon after each line, no extra parentheses or brackets, and no open parentheses or brackets.
- Another thing to check if your code is not working, is to make sure every variable you've used in your code is in the pair.
Beginning your code
Setting points
A = (0,0);
Say you want to have point units to the right of point , then you can use
B = (4,0);
Setting points on your diagram is like setting points on a graph. The first number is the -coordinate of the point and the second number is the -coordinate of the point.
Note: You should not use E, S, N, or W as variables, instead you should use EE, SS, NN, and WW, but label them as E, S, N, W. This is because E, S, N, and W are used to indicate directions in asymptote.
Pair part 1
Example: You have two points and , and you're drawing a line connecting them, you need to include
pair A,B;
in your diagram to make it work.
Connecting two points, coloring the line'
draw(A--B);
Example:
If you want to make the line you're using to connect them red, you can use
draw(A--B--cycle, red);
This will make the line red.
Example:
You can also make a line dashed by writing draw(A--B--cycle, dashed)
Example:
If you wanted to give the line multiple characteristics, such as a red dashed line, you write + in between the characteristics. draw(A--B--cycle, dashed+red)
Example:
Labeling, Midpoint
label("$A$",A,dir(135));
The $A$ means you will label the point .
The A (no dollar signs) means you will be labeling the point A.
The dir(135) determines where on the point the variable will be.
Or you can use label("$A$",A,N);
.
The N means that the label will be above (North) of the point.
Example:
If you want to draw a variable (x) or number at the center of a line you can use
label("$x$", midpoint(A--B), NE);
The NE at the end means North-East, this will decide where on the line the variable will be (above it to the right for NE).
Example:
Angle Measures
label(scale(.75)*"$x$", Z, 2.5*dir(150));
In this line of code, there is a very important command. The "dir" command.
The angle for the dir command always starts facing east. So dir(0) would label the part exactly east of what you are labeling. Similarly dir(90) would label it exactly north, dir(180) would label it exactly west, and dir(270) would label it exactly south.
This is called the unit circle; the unit circle is a large concept that will be discussed in AoPS's Precalculus course. Basically, because a circle has , the starting point is to the right of the circle and the degrees move counterclockwise around the circle. This also means that dir(0) is the same as dir(360). :)
Here's a diagram that will make this tricky concept more understandable.
The starting point, which we will call is at dir(0). dir(90) is the starting point rotated counter clockwise from the starting position; we will call this point . Similarly, dir(180) is the starting point rotated counterclockwise from the starting position; we will call this point . Finally, dir(270) is the starting point rotated counterclockwise from the starting position; we will call this point .
Here are the variables on the unit circle:
The dir(150), at the end you have to play around with, it will move around the angle to see where the degree mark is. The in it means that it is on point . The means that the angle is degrees. The scale(.75) defines the size of the angle mark. The 2.5* defines how far from the point the angle sign is.
Example:
Distance Function
real dist(pair a,pair b){
return sqrt(abs(a.x-b.x)^2+abs(a.y-b.y)^2);
}
Took me some much time just to write a distance function. Hopefully, everybody else doesn't have to go through lots of research to make this.
A note
Apparently a pair has an x property and a y property. I kind of discovered this it by testing. I think it might be documented somewhere.
Casting
pair a = (5,5);
int b = 2;
dot(a);
label((string) a,a,N);
label((string) b,a,S);
Right Angle Mark
draw(rightanglemark(A,B,C,1.5));
The A,B,C means that it will draw the right angle mark on . The defines the size of the right angle mark.
Example:
Intersection
F = intersectionpoint(A -- C, B -- D);
In this code is the intersection point of lines and .
Example:
Filling
Let's walkthrough how the left side of the rectangle is red.
Whoever made the asymptote code for this used the line
fill((0,0)--(0,5)--(1,5)--(5,0)--cycle,red);
The coordinates mean that it will fill in the quadrilateral at points (0,0); (0,5); (1,5); and (5,0). The red at the end means that the color will be red, here's what it would look like if I put blue instead of red (on the left and right side).
If you want to make it a color like light blue, light brown, dark blue, etc. do not put a space between the two words.
If you wanted to make both sides dark blue you would put
fill((0,0)--(0,5)--(1,5)--(5,0)--cycle,darkblue);
fill((7,0)--(1,5)--(7,5)--cycle,darkblue);
Here's what it would look like:
(It looks more like navy to me. But inserting "navy" does not work so I guess that's why.)
You don't have to have both sides the same color though, you could have the left side blue and the right side pink.
Or vice versa.
Try out different colors to see which ones you prefer for your asymptote diagrams. Have fun!
Dot
dot(A, p=black+3bp);
This will draw a black dot on point .
Example:
You can also use
dot(A);
#13 Size
#14 Tick Marks
#15 Arrows
#16 Shifting Coordinates
#17 Rotating
#18 Circles
#19 Dashed Lines
#20 Angle Mark
#21 "for" Command
#22 Extension
#23 How to draw an equilateral triangle
#24 How to draw an isosceles triangle
#25 How to draw a scalene triangle
#26 Labeling Angles
#27 Drawing triangles using SSS, SAS, AAS, and ASA
#28 Arcs
#29 The Nine Point Circle
#30 Pair Part 2
#31 Finding the midpoint
#32 Foot Command
#33 Introduction to 3D Geometry