🔗Asymptote Gallery Tagged by “Intersection” #102
đź”—generalities-fig174

Show generalities/fig1750.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection
size(6cm,0); path p = (0,0){up} .. (2cm,0){up}; path q = (0,1cm){dir(-60)}..(1cm,-1cm)..{dir(60)}(2cm,1cm); draw(p, red); draw(q, blue); dot(intersectionpoint(p,q)); draw(point(p, intersect(p,q)[0])--postcontrol(p, intersect(p,q)[0]), .8red,Arrow); draw(point(q, intersect(p,q)[1])--postcontrol(q, intersect(p,q)[1]), .8blue,Arrow);
đź”—generalities-fig176

Show generalities/fig1770.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Circle | #Intersection | #Function creation
size(6cm,0); import math; pair A=(0,0), B=(1,.5); path cle=shift(1.75,2.5)*unitcircle; pair pt, ptp; pair project(pair pt, pair A, pair B) { return extension(pt,pt-dir(90+degrees(A-B,false)),A,B); } draw(A--B); draw(cle); for (real t=0; t<=4; t+=.01) { pt=point(cle,t); ptp=project(pt,A,B); dot(ptp, red); draw(pt--ptp,dotted); }
đź”—generalities-fig177

Show generalities/fig1780.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Geometry | #Intersection
size(6cm,0); import math; pair A=(0,0), B=(1,.5), C=(.25,1); pair project(pair pt, pair A, pair B) { return extension(pt,pt-dir(90+degrees(A-B,false)),A,B); } pair ocenter(pair A, pair B, pair C) { return extension(A, project(A,B,C), B, project(B,A,C)); } draw(A--B--C--cycle); pair orth=ocenter(A,B,C); pair Ap=project(A,B,C); pair Bp=project(B,A,C); pair Cp=project(C,A,B); dot(orth, red); dot(Ap^^Bp^^Cp); drawline(A, orth, dotted); drawline(B, orth, dotted); drawline(C, orth, dotted);
đź”—generalities-fig178

Show generalities/fig1790.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Circle | #Geometry | #Intersection
size(6cm,0); import math; pair A=(0,0), B=(1,.5), C=(.25,1); pair ccenter(pair A, pair B, pair C) { pair mAB=midpoint(A--B); pair mAC=midpoint(A--C); return extension(mAB, rotate(90,mAB)*A, mAC, rotate(90,mAC)*A); } draw(A--B--C--cycle); pair circ=ccenter(A,B,C); pair mAB=midpoint(A--B); pair mAC=midpoint(A--C); pair mBC=midpoint(B--C); dot(circ, red); dot(mAB^^mAC^^mBC); drawline(mAB, circ, dotted); drawline(mAC, circ, dotted); drawline(mBC, circ, dotted); draw(shift(circ)*scale(abs(circ-A))*unitcircle);
đź”—generalities-fig179

Show generalities/fig1800.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Circle | #Geometry | #Intersection
size(6cm,0); import math; pair A=(0,0), B=(1,.5), C=(.25,1); pair project(pair pt, pair A, pair B) { return extension(pt,pt-dir(90+degrees(A-B,false)),A,B); } pair icenter(pair A, pair B, pair C) { return extension(A, A+dir(A--B,A--C), B, B+dir(B--A,B--C)); } draw(A--B--C--cycle); pair ins=icenter(A,B,C); pair iAB=project(ins,A,B); pair iAC=project(ins,A,C); pair iBC=project(ins,B,C); dot(ins, red); dot(iAB^^iAC^^iBC); drawline(A, ins, dotted); drawline(B, ins, dotted); drawline(C, ins, dotted); draw(shift(ins)*scale(abs(ins-iAB))*unitcircle);
đź”—generalities-fig180

Show generalities/fig1810.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Circle | #Geometry | #Intersection | #Function creation
size(6cm,0); import math; pair project(pair pt, pair A, pair B) { return extension(pt,pt-dir(90+degrees(A-B,false)),A,B); } pair ecenter(pair A, pair B, pair C) { return extension(A, A+rotate(90)*dir(A--B,A--C), B, B+rotate(90)*dir(B--A,B--C)); } path ecircle(pair A, pair B, pair C) { return shift(ecenter(A,B,C))*scale(abs(ecenter(A,B,C)-project(ecenter(A,B,C),B,C)))*unitcircle; } pair A=(0,0), B=(3,0), C=(3,4); path tr=A--B--C--cycle; draw(ecircle(A,B,C)); draw(ecircle(B,C,A)); pen p=linewidth(1pt); drawline(A,B, p); drawline(A,C, p); drawline(B,C, p);
đź”—generalities-fig185

Show generalities/fig1870.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection
size(15cm,0); srand(rand()); path p1 = randompath(9); path p2 = randompath(8); real Minx=min(min(p1).x,min(p2).x); real Maxx=max(max(p1).x,max(p2).x); real Miny=min(min(p1).y,min(p2).y); pair[] inter=intersectionpoints(p1,p2); int nb=inter.length; for (int i=0 ; i<nb; ++i) { dot(inter[i]); label("$" + (string) i +"$", inter[i],N); } draw(p1,.8red); draw(p2,.8green); label("I found " + (string) nb + " points of intersection.",((Maxx+Minx)/2,Miny),2S);
đź”—generalities-fig186

Show generalities/fig1880.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection
size(10cm,0); pair[] self_intersection(path p, int n=100) { pair[] rpair=new pair[]; path tpath; real [] tpoint; real l=length(p); int i=1; for (real t1=0; t1<l ; t1+=l/n) { for (real t2=t1+2*l/n; t2<l; t2+=l/n) { tpoint=intersect(subpath(p,t1,t1+l/n), subpath(p,t2,t2+l/n)); if (tpoint.length == 2) { rpair[i]=point(subpath(p,t1,t1+l/n),tpoint[0]); ++i; } } } return rpair; } void dott(pair[] pt, pen p) { for (int i=1 ; i<pt.length; ++i) { dot(pt[i], p); } } srand(rand()); path p = randompath(15); pair[] inter=self_intersection(p); dott(inter, .8red); draw(p);
đź”—generalities-fig187

Show generalities/fig1890.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection | #Buildcycle | #Transform/scale/shift/rotate | #Circle
size(6cm,0); path [] c; c[1] = xscale(2)*unitcircle; c[2] = shift((0,1))*c[1]; draw(c[1]^^c[2]); draw(buildcycle(c[1],c[2]), .8red+4bp);
đź”—generalities-fig188

Show generalities/fig1900.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection | #Buildcycle | #Transform/scale/shift/rotate | #Array
size(8cm,0); path a,b,c,d; a = (-1,-.2){up} .. tension 1.2 .. (1,-.2){down}; transform r90=rotate(90); b = r90*a; c = r90*b; d = r90*c; path bound=buildcycle(a,b,c,d); fill(bound, lightgrey); draw(a^^b^^c^^d,grey); draw(bound);
đź”—generalities-fig189

Show generalities/fig1910.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection | #Buildcycle | #Transform/scale/shift/rotate | #Circle | #Fill/Unfill
size(8cm,0); path a,b,c; a = shift(1,0)*scale(2)*unitcircle; b = rotate(120)*a; c = rotate(120)*b; fill(a, red); fill(b, green); fill(c, blue); fill(buildcycle(a,b), red + green); fill(buildcycle(b,c), green + blue); fill(buildcycle(c,a), blue + red); fill(buildcycle(a,b,c), white); draw(a^^b^^c);
đź”—generalities-fig191

Show generalities/fig1930.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection | #Transform/scale/shift/rotate | #Circle
size(0,0); path pt1=scale(2cm)*unitcircle; path pt2=scale(1cm)*unitcircle; filldraw(pt1^^pt2,evenodd+yellow+.9white);
đź”—generalities-fig192

Show generalities/fig1940.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection | #Transform/scale/shift/rotate | #Circle
size(0,0); path pt1=scale(2cm)*unitcircle; path pt2=scale(1cm)*unitcircle; path pt3=shift(0,.5cm)*pt2; filldraw(pt1^^pt2^^pt3,evenodd+yellow+.9white);
đź”—generalities-fig193

Show generalities/fig1950.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Generalities
Tags : #Basis | #Path | #Intersection | #Transform/scale/shift/rotate | #Circle
size(0,0); path pt1=scale(2cm)*unitcircle; path pt2=scale(1cm)*unitcircle; path pt3=shift(0,1.5cm)*pt2; filldraw(pt1^^pt2^^pt3,evenodd+yellow+.9white);
đź”—geometry-fig013

Show geometry/fig0130.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Coords system | #Point | #Vector | #Line | #Intersection
import geometry; size(10cm,0); currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-1,1)); coordsys Rp=currentcoordsys; coordsys Rs=cartesiansystem((-1,2),i=(-1,0.5),j=(-1,-1)); coordsys R=defaultcoordsys; show("$O$","$\vec{\imath}$", "$\vec{\jmath}$", R); show("$O'$","$\vec{u}$","$\vec{v}$", Rp, xpen=invisible); show("$O''$", "$\vec{u'}$", "$\vec{v'}$", Rs, xpen=invisible); pair a=(0.5,0.5); pair b=(-0.5,-1); point A=point(R,a), B=point(R,b); dot("$A$",A,S); dot("$B$",B,S); line l=line(A,B); point Ap=a, Bp=b; dot("$A'$",Ap); dot("$B'$",Bp,SE); line lp=line(Ap,Bp); point As=point(Rs,a), Bs=point(Rs,b); dot("$A''$",As,S); dot("$B''$",Bs,SE); line ls=line(As,Bs); draw(l^^lp^^ls); dot(intersectionpoint(l,lp),2mm+red); dot(intersectionpoint(l,ls),2mm+red); dot(intersectionpoint(lp,ls),2mm+red);
đź”—geometry-fig014

Show geometry/fig0140.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Coords system | #Point | #Vector | #Line | #Intersection
include fig0130; point w=l.A+1.5*l.v; draw(Label("$w$",EndPoint),l.A--w,Arrow); point wp=lp.A+1.5*lp.v; draw(Label("$w'$",EndPoint),lp.A--wp,Arrow); point ws=ls.A+1.5*ls.v; draw(Label("$w''$",EndPoint),ls.A--ws,Arrow); int n=64; real step=2pi/n; for (int i=0; i<n; ++i) { point p=B+point(R,R.polar(1,step*i)); dot(p,sameside(p,w,l) ? black : blue); point p=Ap+point(Rp,Rp.polar(1,step*i)); dot(p,sameside(p,wp,lp) ? black : blue); point p=As+point(Rs,Rs.polar(1,step*i)); dot(p,sameside(p,ws,ls) ? black : blue); }
đź”—geometry-fig015

Show geometry/fig0150.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Path
size(12cm,0); import geometry; import base_pi; dotfactor*=2; currentcoordsys=cartesiansystem((0,0),i=(1,0.5),j=(-1,1)); coordsys Rp=currentcoordsys; show("$O'$","$\vec{u}$","$\vec{v}$", Rp, xpen=invisible); path cle=randompath(20); draw(cle); point A=(0,1.5), B=(1,-0.5); line l=line(A,B); draw(l); /*<asyxml><view file="modules/geometry.asy" type="pair[]" signature="intersectionpoints(line,path)"/></asyxml>*/ dot(intersectionpoints(l,cle));
đź”—geometry-fig017

Show geometry/fig0170.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Coords system | #Point | #Line | #Parallel | #Perpendicular | #Intersection | #Markers
unitsize(1cm); import geometry; dotfactor*=1.5; linemargin=5mm; // currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-1,1)); show(currentcoordsys); point A=(-3,-1), B=(3,4); line l1=line(A,B); draw(l1,red); dot("$A$",A,SE); dot("$B$",B,NW); point M=(2,-2); dot("$M$",M); /*<asyxml><view file="modules/geometry.asy" type="line" signature="parallel(point,line)"/></asyxml>*/ draw(parallel(M,l1),red); /*<asyxml><view file="modules/geometry.asy" type="line" signature="perpendicular(point,line)"/></asyxml>*/ line perp=perpendicular(M,l1); draw(perp); /*<asyxml><view file="modules/geometry.asy" type="point" signature="intersectionpoint(line,line)"/></asyxml>*/ point interp=intersectionpoint(l1,perp); dot(interp,green); /*<asyxml><view file="modules/geometry.asy" type="void" signature="markrightangle(picture,point,point,point,real,pen,margin,filltype)"/></asyxml>*/ markrightangle(l1.A,interp,rotate(180,interp)*M,size=5mm); draw(box((-5,-5),(5,5)),invisible);
đź”—geometry-fig022

Show geometry/fig0220.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Coords system | #Line | #Markers | #Intersection
unitsize(2cm); import geometry; currentcoordsys=cartesiansystem((2,1),i=(1,0.25),j=(-0.25,.75)); show(lo=Label("$O$",align=SE+0.5E), currentcoordsys); pair A=(1,1), B=(2,2); line l1=line(A,B); draw("$(l_1)$",l1); line l2=rotate(100,(3,3))*l1; draw("$(l_2)$",l2); write(locate(intersectionpoint(l1,l2))); /*<asyxml><view file="modules/geometry.asy" type="line" signature="bisector(line,line,real,bool)"/></asyxml>*/ line bis=bisector(l1,l2); draw(bis); line Bis=bisector(l1,l2,90); draw(Bis,0.8*red); markangleradiusfactor*=5; /*<asyxml><view file="modules/geometry.asy" type="void" signature="markangle(picture,Label,int,real,real,line,line,arrowbar,pen,filltype,margin,marker)"/></asyxml>*/ markangle(2, l1, l2, StickIntervalMarker(2,2,true)); markangle(2, reverse(l2), l1, radius=1.25*markangleradius(), StickIntervalMarker(2,1,true)); /*<asyxml><view file="modules/geometry.asy" type="bool" signature="concurrent(...line[])"/></asyxml>*/ if (concurrent(bis,l1,l2,Bis)) label("Concurrent",(3,3), dir(135)); draw(box(locate((-1,0)),locate((5,5))),invisible);
đź”—geometry-fig023

Show geometry/fig0230.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Coords system | #Line | #Intersection
import geometry; size(12cm,0); currentcoordsys=cartesiansystem((2,1),i=expi(pi/18)*(1,0),j=expi(pi/18)*(0,1)); show(currentcoordsys,xpen=invisible); point A=(-1.5,-1); point C=(-1,1); point B=(-1,0); dot("$A$", A, 2W); dot("$B$", B, 2E); line l1=hline()+C; draw("$(l_1)$", l1, blue); dot("$C$", C, NE); line l2=line(A, B, false); draw(Label("$(AB]$",Relative(.25),SE), l2, green); /*<asyxml><view file="modules/geometry.asy" type="line" signature="complementary(explicit line)"/></asyxml>*/ draw("Complementary of $(AB]$", complementary(l2), dotted+roundcap); point p=intersectionpoint(l1,l2); /*<asyxml><view file="modules/geometry.asy" type="bool" signature="defined(pair)"/></asyxml>*/ string s="$(l_1)$" + (defined(p) ? " intersects " : " does not intersect ") + "$(AB]$"; label(s, A+1.75*l2.u,W); draw(box(locate((-2,-2)),locate((2,2))), invisible);
đź”—geometry-fig035

Show geometry/fig0350.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Circle | #Line | #Intersection
import geometry; size(8cm,0); currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,.75)); show(currentcoordsys, xpen=invisible); point A=(-1,0); point B=(0.5,-3sin(2)); dot("$A$",A,S,red); dot("$B$",B,N,red); line l=line(A,B); circle c=circle((point)(0,-sqrt(2)/2),exp(1)); draw(l); draw(c); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,circle)"/></asyxml>*/ point[] inter=intersectionpoints(l,c); dot("$M$", inter[0], 2S, red); dot("$N$", inter[1], 2N+0.5W, red);
đź”—geometry-fig036

Show geometry/fig0360.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Ellipse | #Intersection
import geometry; size(8cm,0); currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,.75)); show(currentcoordsys); point A=(-1,0); point B=(0.5,-3sin(2)); dot("$A$",A,S,red); dot("$B$",B,N,red); line l=line(A,B); ellipse el=ellipse((0,-sqrt(2)/2),3,2,90); draw(l); draw(el,Arrow); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,ellipse)"/></asyxml>*/ point[] inter=intersectionpoints(l,el); dot("$M$", inter[0], 4N+2W, red); dot("$N$", inter[1], 2S+0.5E, red);
đź”—geometry-fig037

Show geometry/fig0370.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Parabola | #Intersection
import geometry; size(10cm); // currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,.75)); // show(currentcoordsys); point A=(-1,-1); point B=(2,1); dot("$A$",A,S,red); dot("$B$",B,N,red); line l=line(A,B); draw(l); point F=(2,-1.5); dot("$F$",F,N); parabola p=parabola(F,0.2,110); draw(p); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,parabola)"/></asyxml>*/ point[] inter=intersectionpoints(l,p); dot("$M$", inter[0], 2N+E, red); dot("$N$", inter[1], S+2E, red);
đź”—geometry-fig038

Show geometry/fig0380.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Hyperbola
import geometry; size(10cm); // currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,.75)); // show(currentcoordsys); // Enlarge the bounding box of the current picture draw(box((-6,-5), (10,2)), invisible); point A=(-2,-2); point B=(2,-3); dot("$A$",A,N,red); dot("$B$",B,S,red); line l=line(A,B); draw(l); point C=(2,-1.5); dot("$C$",C,N); hyperbola h=hyperbola(C,sqrt(2),sqrt(2)/2,0); draw(h); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,hyperbola)"/></asyxml>*/ point[] inter=intersectionpoints(l,h); dot("$M$", inter[0], 2N+E, red); dot("$N$", inter[1], 2S+E, red);
đź”—geometry-fig039

Show geometry/fig0390.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle
import geometry; size(8cm,0); currentcoordsys=cartesiansystem((0,0),i=(1,1),j=(-0.5,.75)); show(currentcoordsys); point A=(-0.5,.75); point B=(1,1); dot("$A$",A,SE); dot("$B$",B,NW); line l=line(A,B,false); line ll=hline()+B; circle c=circle((point)(0.5,0.5),2); draw(l^^ll); draw(complementary(l),dashed+grey); draw(c); dotfactor*=2; /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,circle)"/></asyxml>*/ dot(intersectionpoints(l,c),red); dot(intersectionpoints(ll,c),red);
đź”—geometry-fig040

Show geometry/fig0400.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Ellipse
import geometry; size(8cm,0); currentcoordsys=cartesiansystem((0,0),i=(1,1),j=(-0.5,.75)); show(currentcoordsys); point A=(-0.5,.75); point B=(1,1); dot("$A$",A,SE); dot("$B$",B,NW); line l=line(A,B,false); line ll=hline()+B; ellipse el=ellipse((point)(0.5,0.5),3,2); draw(l^^ll); draw(complementary(l),dashed+grey); draw(el); dotfactor*=2; /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,ellipse)"/></asyxml>*/ dot(intersectionpoints(l,el),red); dot(intersectionpoints(ll,el),red);
đź”—geometry-fig041

Show geometry/fig0410.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Parabola
import geometry; size(10cm); // currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,.75)); // show(currentcoordsys); point A=(-1,-1); point B=(2,1); dot("$A$",A,S,red); dot("$B$",B,NW,red); line l=line(A,B,false); line ll=hline()+0.5*B; draw(l^^ll); draw(complementary(l),dashed+grey); point F=(2,-1.5); dot("$F$",F,N); parabola p=parabola(F,0.2,110); draw(p); dotfactor*=2; /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,parabola)"/></asyxml>*/ dot(intersectionpoints(l,p), red); dot(intersectionpoints(ll,p), red);
đź”—geometry-fig042

Show geometry/fig0420.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle
import geometry; size(10cm,0); // currentcoordsys=cartesiansystem((0,0),i=(1,1),j=(-0.5,.75)); // show(currentcoordsys); point A=(-1,-1); point B=(0.75,0.5); dot("$A$",A,NW,red); dot("$B$",B,N,red); circle c1=circle(A,1.5); circle c2=circle(B,2); draw(c1^^c2); /*<asyxml><view file="modules/geometry.asy" type="line" signature="radicalline(circle,circle)"/></asyxml>*/ draw(radicalline(c1,c2)); /*<asyxml><view file="modules/geometry.asy" type="point" signature="radicalcenter(circle,circle)"/></asyxml>*/ dot(radicalcenter(c1,c2)); dotfactor*=2; /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(circle,circle)"/></asyxml>*/ point[] inter=intersectionpoints(c1,c2); dot("$M$", inter[0], 2SW, red); dot("$N$", inter[1], 2NE, red);
đź”—geometry-fig043

Show geometry/fig0430.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Intersection | #Ellipse
import geometry; size(10cm,0); // currentcoordsys=cartesiansystem((0,0),i=(1,1),j=(-0.5,.75)); // show(currentcoordsys); point C=(0,0); point Cp=(0.5,0.5); dot("$C$",C,NW,red); dot("$C'$",Cp,N,red); ellipse el1=ellipse(C,2,1); ellipse el2=ellipse(Cp,3,1,40); draw(el1^^el2); dotfactor*=2; /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(ellipse,ellipse)"/></asyxml>*/ point[] inter=intersectionpoints(el1,el2); dot(inter);
đź”—geometry-fig044

Show geometry/fig0440.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle | #Tangent
import geometry; size(10cm,0); // currentcoordsys=cartesiansystem((0,0),i=(1,0.25),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); point A=(-1,-1); point B=(0.75,0.5); dot("$A$",A,NW,red); dot("$B$",B,N,red); circle c1=circle(A,1.5); circle c2=circle(B,2); draw(c1^^c2); point[] inter=intersectionpoints(c1,c2); dot("$M$", inter[0], 2NW, red); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(circle,point)"/></asyxml>*/ draw(tangent(c1,inter[0]), grey); draw(tangent(c2,inter[0]), grey); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(circle,abscissa)"/></asyxml>*/ draw(tangent(c2,angabscissa(135)), grey);
đź”—geometry-fig045

Show geometry/fig0450.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle | #Point | #Perpendicular
import geometry; size(10cm,0); point c2=(13,5); real r=4, R=abs(c2)-r; circle[] C={circle(origin, 4), circle(c2,R)}; draw(C[0]^^C[1], blue); segment s=segment(origin, c2); draw(s, red, dot); /*<asyxml><view file="modules/geometry.asy" type="point" signature="curpoint(line,real)"/></asyxml>*/ point T=curpoint(s,r/(r-R)*abs(c2)); dot(T); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangents(circle,point)"/></asyxml>*/ line[] tgt=tangents(C[1], T); draw(tgt); point[][] t= new point[2][2]; for (int i=0; i < 2 ; ++i) for (int j=0; j < 2; ++j) { /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,circle)"/></asyxml>*/ t[i][j]=intersectionpoints(C[i],tgt[j])[0]; draw(C[i].C--t[i][j], dot); markrightangle(T, t[i][j], C[i].C, size=(i == 0 ? 2mm : 0)); } addMargins(cm/2,cm/2);
đź”—geometry-fig046

Show geometry/fig0460.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Ellipse | #Abscissa | #Point | #Tangent
import geometry; size(10cm,0); // currentcoordsys=cartesiansystem((0,0),i=(1,0.5),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); point A=(-1,-1); point B=(0.75,0.5); dot("$A$",A,NW,red); dot("$B$",B,N,red); ellipse el1=ellipse(A,2,1.5); ellipse el2=ellipse(B,3,2); draw(el1); draw(el2,Arrow); point[] inter=intersectionpoints(el1,el2); dot("$M$", inter[0], 2NW, red); /*<asyxml><view file="modules/geometry.asy" type="line[]" signature="tangents(ellipse,point)"/></asyxml>*/ draw(tangents(el1,inter[0]), grey); draw(tangents(el2,inter[0]), grey); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(ellipse,abscissa)"/></asyxml>*/ draw(tangent(el2,angabscissa(90)), grey);
đź”—geometry-fig047

Show geometry/fig0470.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Parabola | #Abscissa | #Point | #Tangent
import geometry; size(12cm); // currentcoordsys=cartesiansystem((0,0),i=(1,0.5),j=(-0.5,.75)); // show(currentcoordsys, xpen=invisible); point F1=(0,0); dot("$F1$",F1,NW); point F2=(-0.25,0.5); dot("$F2$",F2,SE); parabola p=parabola(F1, 0.1, 120); draw(p, bp+red); parabola pp=parabola(F2, 0.06, 280); draw(pp, bp+blue); abscissa x=angabscissa(180); dot(point(p,x)); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(parabola,abscissa)"/></asyxml>*/ draw(tangent(p,x), 0.8*red); point[] P=intersectionpoints(p,pp); dot(P); /*<asyxml><view file="modules/geometry.asy" type="line[]" signature="tangents(parabola,point)"/></asyxml>*/ draw(tangents(p,P[0]), 0.8*red); draw(tangents(pp,P[0]), 0.8*blue); // Enlarge the bounding box draw(box((-1,-0.4), (0.5,0.6)),invisible);
đź”—geometry-fig048

Show geometry/fig0480.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Hyperbola | #Abscissa | #Point | #Tangent
import geometry; size(10cm); point C=(4,2); dot("$C$",C,E+NE,red); hyperbola h=hyperbola(C,1.5,1,-20); draw(h, linewidth(bp)); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(hyperbola,abscissa)"/></asyxml>*/ line l=tangent(h,angabscissa(85)); draw(l, grey); dot(intersectionpoints(h,l)); l=tangent(h,angabscissa(0,fromCenter)); draw(l, grey); dot(intersectionpoints(h,l)); // Enlarge the bounding box of the current picture. draw(box((-1,-0.5), (9,4)), invisible);
đź”—geometry-fig049

Show geometry/fig0490.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Hyperbola | #Point | #Tangent
import geometry; size(12cm); point C=(0,0); dot(C); hyperbola[] h; h[0]=hyperbola(C,2,2); h[1]=hyperbola(C,1.5,1); draw(h[0], 2bp+0.8*red); draw(h[1], 2bp+0.8*blue); point[] P=intersectionpoints(h[0],h[1]); line[] l; for (int i=0; i < P.length; ++i) { for (int j=0; j < 2; ++j) { /*<asyxml><view file="modules/geometry.asy" type="line[]" signature="tangents(hyperbola,point)"/></asyxml>*/ l=tangents(h[j],P[i]); draw(l[0], j == 0 ? red : blue); } } dot(P, yellow); // Enlarge the bounding box of the current picture. draw(box((-4,-3), (4,3)), invisible);
đź”—geometry-fig050

Show geometry/fig0500.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle | #Tangent | #Point
import geometry; size(10cm,0); currentcoordsys=cartesiansystem((0,0),i=(1,0.5),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); point A=(2.5,-1); point B=A+(3,1); dot("$A$",A,SW); dot("$B$",B,2N+0.5W); circle c1=circle(A,1.5); draw(c1); /*<asyxml><view file="modules/geometry.asy" type="line[]" signature="tangents(circle,point)"/></asyxml>*/ line[] tgt=tangents(c1,B); draw(tgt,red); /*<asyxml><view file="modules/geometry.asy" type="circle" signature="circle(point,point)"/></asyxml>*/ draw(circle(B,A),grey); // dot(intersectionpoints(c1,circle(B,A)),red); for (int i=0; i<tgt.length; ++i) { dot(intersectionpoints(c1,tgt[i]),2mm+red); }
đź”—geometry-fig051

Show geometry/fig0510.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle | #Tangent | #Ellipse | #Point
import geometry; size(12cm,0); // currentcoordsys=cartesiansystem((0,0),i=(1,0.5),j=(-0.5,.75)); // show(currentcoordsys, xpen=invisible); point A=(2.5,-1); dot("$A$",A,SW); ellipse el1=ellipse(A,2,1,10); draw(el1); circle C=circle(A,3); draw(C); for (int i=0; i < 360; i+=90) { point B=point(C,angabscissa(i)); dot("$B$",B,locate(unit(B-A))); line[] tgt=tangents(el1,B); draw(tgt,0.8*red); for (int i=0; i < tgt.length; ++i) { dot(intersectionpoints(el1,tgt[i]),blue); } }
đź”—geometry-fig052

Show geometry/fig0520.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Line | #Intersection | #Circle | #Tangent | #Ellipse | #Point
import geometry; size(12cm,0); // currentcoordsys=cartesiansystem((0,0),i=(1,0.5),j=(-0.5,.75)); // show(currentcoordsys, xpen=invisible); point F=(0,0); dot("$F$", F, SW); parabola p=parabola(F, 0.1, 30); draw(p); point C=shift(2*(p.V-p.F))*p.V; circle cle=circle(C, 0.2); draw(cle); for (int i=0; i < 360; i+=90) { point M=point(cle, angabscissa(i)); dot("$M$", M, locate(unit(M-C))); line[] tgt=tangents(p, M); draw(tgt, 0.8*red); for (int i=0; i < tgt.length; ++i) { dot(intersectionpoints(p, tgt[i]), blue); } }
đź”—geometry-fig076

Show geometry/fig0760.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Ellipse | #Draw (2D) | #Circle | #Parabola | #Hyperbola | #Conic | #Intersection
import geometry; size(12cm); // currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,0.75)); // currentcoordsys=cartesiansystem((2,1),i=rotate(45)*(1,0),j=rotate(45)*(0,1)); // show(currentcoordsys); conic co[]; co[0]=circle((point)(0,0),1); /*<asyxml><view file="modules/geometry.asy" type="void" signature="draw(picture,Label,explicit conic,align,pen,arrowbar,arrowbar,margin,Label,marker)"/></asyxml>*/ draw(co[0]); co[1]=ellipse((point)(0,0),4,1); draw(co[1]); co[2]=parabola((0,0),1,90); draw(co[2]); hyperbola h=hyperbola((-1,0),(1,0),1.2,byvertices); co[3]=h; draw(co[3]); draw(h.A1,grey); draw(h.A2,grey); dotfactor *= 1; for (int i=0; i < 4; ++i) { dot(intersectionpoints(h.A1,co[i]),blue); dot(intersectionpoints(h.A2,co[i]),blue); for (int j=i+1; j < 4; ++j) /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(conic,conic)"/></asyxml>*/ dot(intersectionpoints(co[i],co[j]), red); }
đź”—geometry-fig096

Show geometry/fig0960.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Arc | #Circle | #Line | #Abscissa | #Intersection | #Point
import geometry; size(8cm); // currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); point A=(-1,0) ; dot("$A$",A,S); point B=(1,1) ; dot("$B$",B,S); point C=(0,0) ; point D=(1,-1) ; dot("$D$",D,SW); arc c=arc(circle(C,2), 0, 270); draw(complementary(c),dashed+grey); line l1=line(A,B); draw(l1); line l2=line(C,D); draw(l2); point[] J=intersectionpoints(l1,c); point[] K=intersectionpoints(l2,c); /*<asyxml><view file="modules/geometry.asy" type="arc" signature="arc(explicit arc,point,point)"/></asyxml>*/ draw(arc(c,K[0],J[0]),2mm+0.8yellow); draw(arc(c,J[1],K[0]),2mm+0.8red); /*<asyxml><view file="modules/geometry.asy" type="arc" signature="arc(explicit arc,abscissa,abscissa)"/></asyxml>*/ draw(arc(c,relabscissa(c,J[0]),relabscissa(1)),2mm+0.8green); draw(arc(c,relabscissa(0),relabscissa(c,J[1])),2mm+0.8blue); dot("$J_0$",J[0],2NW); dot("$J_1$",J[1],2N); dot("$K_0$",K[0],2W); draw(c, 1mm+white);
đź”—geometry-fig097

Show geometry/fig0970.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Arc | #Ellipse | #Line | #Abscissa | #Intersection | #Point
import geometry; size(8cm); // currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); point A=(-1,0) ; dot("$A$",A,S); point B=(1,1) ; dot("$B$",B,S); point C=(0,0) ; point D=(1,-1) ; dot("$D$",D,SW); arc c=arc(ellipse(C,2,1,20), 0, 270); draw(complementary(c),dashed+grey); line l1=line(A,B); draw(l1); line l2=line(C,D); draw(l2); point[] J=intersectionpoints(l1,c); point[] K=intersectionpoints(l2,c); /*<asyxml><view file="modules/geometry.asy" type="arc" signature="arc(explicit arc,point,point)"/></asyxml>*/ draw(arc(c,J[0],K[0]),2mm+0.8yellow); draw(arc(c,K[0],J[1]),2mm+0.8red); /*<asyxml><view file="modules/geometry.asy" type="arc" signature="arc(explicit arc,abscissa,abscissa)"/></asyxml>*/ draw(arc(c,relabscissa(c,J[1]),relabscissa(1)),2mm+0.8green); draw(arc(c,relabscissa(0),relabscissa(c,J[0])),2mm+0.8blue); dot("$J_0$",J[0],2N); dot("$J_1$",J[1],N+2W); dot("$K_0$",K[0],2N); draw(c, 1mm+white);
đź”—geometry-fig101

Show geometry/fig1010.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Arc | #Circle | #Intersection | #Line | #Coords system
import geometry; size(8cm,0); currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); real R=2; point A=(1,1); dot("$A$", A, S, red); point B=A+(2,1); dot("$B$", B, N, blue); arc a=arc(circle(A,R), -40, 180); arc b=arc(circle(B,R), -45, 220); line l=line(A,B); draw(a,red); draw(b,blue); draw(l); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(arc,arc)"/></asyxml>*/ point[] inter=intersectionpoints(a,b); dot(inter); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,arc)"/></asyxml>*/ point[] inter=intersectionpoints(l,a); dot(inter); point[] inter=intersectionpoints(l,b); dot(inter);
đź”—geometry-fig102

Show geometry/fig1020.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Arc | #Ellipse | #Intersection | #Line | #Coords system
import geometry; size(8cm,0); // currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); // show(currentcoordsys, xpen=invisible); real R=2; point A=(1,1); dot("$A$", A, S, red); point B=A+(2,1); dot("$B$", B, N, blue); arc a=arc(ellipse(A,R,R/2), -40, 180); arc b=arc(ellipse(B,R,R/2), -45, 220); line l=line(A,B); draw(a,red); draw(b,blue); draw(l); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(arc,arc)"/></asyxml>*/ point[] inter=intersectionpoints(a,b); dot(inter); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(line,arc)"/></asyxml>*/ point[] inter=intersectionpoints(l,a); dot(inter); point[] inter=intersectionpoints(l,b); dot(inter);
đź”—geometry-fig103

Show geometry/fig1030.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Arc | #Circle | #Intersection | #Line | #Coords system | #Tangent
import geometry; size(8cm,0); currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); show(currentcoordsys, xpen=invisible); real R=2; point A=(1,1.5); dot("$A$",A,S,red); point B=A+(2,1); dot("$B$",B,S,blue); arc a=arc(circle(A,R),-40,180); arc b=arc(circle(B,R),-45,220); draw(a,red); draw(b,blue); point M=intersectionpoints(a,b)[0]; dot(M); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(explicit arc,point)"/></asyxml>*/ draw(tangent(a,M), grey); draw(tangent(b,M), grey); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(explicit arc,abscissa)"/></asyxml>*/ draw(tangent(a,angabscissa(45)), grey);
đź”—geometry-fig104

Show geometry/fig1040.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Arc | #Ellipse | #Intersection | #Line | #Coords system | #Tangent
import geometry; size(10cm,0); // currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); // show(currentcoordsys, xpen=invisible); real R=2; point A=(1,1.5); dot("$A$",A,S,red); point B=A+(2.5,1); dot("$B$",B,E,blue); arc a=arc(ellipse(A,R,R/2,30),-40,180); // ellispenodesnumberfactor=400; arc b=arc(ellipse(B,2R,R/2,-10),-30,180); draw(a,red); draw(b,blue); point M=intersectionpoints(a,b)[0]; dot(M); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(explicit arc,point)"/></asyxml>*/ draw(tangent(a,M), grey); draw(tangent(b,M), grey); /*<asyxml><view file="modules/geometry.asy" type="line" signature="tangent(explicit arc,abscissa)"/></asyxml>*/ draw(tangent(a,angabscissa(45)), grey);
đź”—geometry-fig105

Show geometry/fig1050.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Segment | #Intersection | #Line | #Markers | #Point
import geometry; size(8cm,0); // currentcoordsys=cartesiansystem((1,2),i=(1,0.5),j=(-0.5,.75)); // show(currentcoordsys, xpen=invisible); point A=(0.25,0.25); point B=A+(1,0.25); dot("$A$",A,S,red); dot("$B$",B,N,red); segment s=segment(A,B); line bis=bisector(s); draw(s,StickIntervalMarker(2,2)); draw(bis); /*<asyxml><view file="modules/geometry.asy" type="path" signature="compassmark(pair,pair,real,real)"/></asyxml>*/ draw(compassmark(A, point(bis,0.75), position=0.25,angle=25), grey); draw(compassmark(B, point(bis,0.75), position=0.75,angle=25), grey); /*<asyxml><view file="modules/geometry.asy" type="point" signature="point(line,real)"/></asyxml>*/ draw(compassmark(A, point(bis,0.25), position=0.5,angle=15), grey); draw(compassmark(B, point(bis,0.25), position=0.5,angle=15), grey);
đź”—geometry-fig115

Show geometry/fig1150.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 2D | Geometry.asy
Tags : #Geometry | #Triangle | #Line | #Point | #Intersection
import geometry; size(8cm); // currentcoordsys=cartesiansystem((2,1),i=(1,0.5),j=(-0.25,.75)); // show(currentcoordsys); dotfactor *=1.5; triangle t=triangleabc(3,4,5); drawline(t, linewidth(bp)); label(t, alignFactor=3); line l=line((-1,-2), (1,0.5)); draw(l, 0.8*red); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(triangle,line,bool)"/></asyxml>*/ dot(intersectionpoints(t,l), 0.8*red); circle C=2*circle(t); draw(C, 0.8*blue); /*<asyxml><view file="modules/geometry.asy" type="point[]" signature="intersectionpoints(triangle,conic,bool)"/></asyxml>*/ dot(intersectionpoints(t,C, true), 0.8*blue);
đź”—solids-fig012

Show solids/fig0120.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Intersection | #Revolution | #Wire frame | #Markers
import solids; size(10cm, 0); currentprojection=orthographic(-50, 100, 40); //Draw right angle (MA, MB) in 3D void drawrightangle(picture pic=currentpicture, triple M, triple A, triple B, real radius=0, pen p=currentpen, pen fillpen=nullpen, projection P=currentprojection) { p=linejoin(0)+linecap(0)+p; if (radius==0) radius=arrowfactor*sqrt(2); transform3 T=shift(-M); triple OA=radius/sqrt(2)*unit(T*A), OB=radius/sqrt(2)*unit(T*B), OC=OA+OB; path3 _p=OA--OC--OB; picture pic_; draw(pic_, _p, p=p); if (fillpen!=nullpen) draw(pic_, surface(O--_p--cycle), fillpen); add(pic, pic_, M); } // *...............Construction starts here................* real r=1, h=.75; real gle=60; real gleA=20; transform3 tR=rotate(gle, Z); transform3 tT=shift((0, 0, -h)); triple H=(0, 0, h),//the label is O in the picture. A=rotate(gleA, Z)*(0, r, h), F=tR*A, B=tR*F, D=tT*A, C=tT*B, Ei=intersectionpoint(H--F, A--B); revolution r=cylinder(O, r, h, Z); // draw(surface(r)); draw(r); draw(O--H, dashed); draw(O--D--C--cycle^^O--H^^B--C, dashed); drawrightangle(Ei, H, B, fillpen=black); dot(Label("$O'$", align=invert(NE+E, O)), O); // layer(); draw(surface(A--B--C--D--cycle), lightgrey+opacity(.5)); dot(Label("$A$", align=NW), A); dot(Label("$B$", align=N), B); dot(Label("$C$", align=S), C); dot(Label("$D$", align=NW), D); dot(Label("$E$", align=S), Ei); dot(Label("$F$", align=S), F); dot(Label("$O$", align=N), H); draw(H--B--F--A--cycle^^H--F^^A--B^^A--D);
đź”—three-fig005

Show three/fig0050.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Three.asy
Tags : #Geometry (3D) | #Wire frame | #Line type | #Intersection | #Interp
import three; import math; size(8cm,0); currentprojection=obliqueX; real h=2; triple A =(0,0,h), B=(h,0,0), C=(0,h,0), D=(0,0,0); triple Ip=midpoint(A--C), J=midpoint(A--B); triple K=shift((0,0,-0.25*h))*A; triple M=interp(K,J,intersect(K,J,normal(new triple[]{B,C,D}),D)); triple Np=interp(K,Ip,intersect(K,Ip,normal(new triple[]{B,C,D}),D)); dot("$A$", A, align=Z); dot("$B$", B, align=S); dot("$C$", C, align=S); dot("$D$", D, align=W); dot("$I$", Ip, align=N); dot("$J$", J, align=W); dot("$K$", K, align=NE); dot("$M$", M, align=SE); dot("$N$", Np, align=S); draw(A--B--C--cycle^^B--M^^C--Np^^J--M^^Ip--Np); draw(A--D--C^^D--B^^J--K^^K--Ip, dashed);