Difference between revisions of "Asymptote: Useful functions"
(→Intersection points) |
(Added another example) |
||
Line 5: | Line 5: | ||
pair[] <b>intersectionpoints</b>(path, path); | pair[] <b>intersectionpoints</b>(path, path); | ||
− | + | Examples: | |
<pre><nowiki>size(8cm,0); | <pre><nowiki>size(8cm,0); | ||
import math; | import math; | ||
Line 41: | Line 41: | ||
dot(x[1],3bp+blue); | dot(x[1],3bp+blue); | ||
draw(x[0] -- x[1],1bp+red);</asy> | draw(x[0] -- x[1],1bp+red);</asy> | ||
+ | |||
+ | <pre><nowiki> | ||
+ | path g=(-3,-sqrt(3))--(3,-sqrt(3))--(0,2*sqrt(3))--cycle; | ||
+ | draw(g,black); | ||
+ | path p=-2/3*(-3,-sqrt(3))--(-2/3)*(3,-sqrt(3))--(-2/3)*(0,2*sqrt(3))--cycle; | ||
+ | draw(p,black); | ||
+ | pair [] x=intersectionpoints(g, p); | ||
+ | fill(x[0]--x[1]--x[2]--x[3]--x[4]--x[5]--cycle,black); | ||
+ | dot((0,0),white); | ||
+ | </nowiki></pre> | ||
+ | <asy> | ||
+ | path g=(-3,-sqrt(3))--(3,-sqrt(3))--(0,2*sqrt(3))--cycle; | ||
+ | draw(g,black); | ||
+ | path p=-2/3*(-3,-sqrt(3))--(-2/3)*(3,-sqrt(3))--(-2/3)*(0,2*sqrt(3))--cycle; | ||
+ | draw(p,black); | ||
+ | pair [] x=intersectionpoints(g, p); | ||
+ | fill(x[0]--x[1]--x[2]--x[3]--x[4]--x[5]--cycle,black); | ||
+ | dot((0,0),white); | ||
+ | </asy> | ||
Note that this function will cause an error if the paths involved do not intersect. | Note that this function will cause an error if the paths involved do not intersect. | ||
Revision as of 12:46, 26 November 2011
Intersection points
pair[] intersectionpoints(path, path);
Examples:
size(8cm,0); import math; import graph; real r,s; pair a,b, common; path circ1, circ2; r=1; s=1; a=(0,0); b=(1,0); circ1=circle(a,r); circ2=circle(b,s); draw(circ1,linewidth(1bp)); draw(circ2,1bp+green); pair [] x=intersectionpoints(circ1, circ2); dot(x[0],3bp+blue); dot(x[1],3bp+blue); draw(x[0] -- x[1],1bp+red);
path g=(-3,-sqrt(3))--(3,-sqrt(3))--(0,2*sqrt(3))--cycle; draw(g,black); path p=-2/3*(-3,-sqrt(3))--(-2/3)*(3,-sqrt(3))--(-2/3)*(0,2*sqrt(3))--cycle; draw(p,black); pair [] x=intersectionpoints(g, p); fill(x[0]--x[1]--x[2]--x[3]--x[4]--x[5]--cycle,black); dot((0,0),white);
Note that this function will cause an error if the paths involved do not intersect.