Đường tròn Monge

Description


51

Mã Asymptote

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import animate;
import geometry;
animation anim;
dotfactor=8;
guide locus;
unitsize(1cm);
point O=(0,0);
point tP(real n,point [] A){
point tp;
if(n<=pi||n>=2pi) tp=A[1];
else tp=A[0];
return tp;
}
point tR(real n,point [] A){
point tp;
if(n<=pi/2||n>=1.5pi) tp=A[1];
else tp=A[0];
return tp;
}
real a = 3;
real b = 2;
real r=sqrt(a^2+b^2);
ellipse e=ellipse(O,a,b);
circle c2=circle(e.F2,2a),c1=circle(e.F1,2a);
real ang,endang=6.8;
for(ang=0.34;ang<=endang+0.17;ang=ang+0.17){
save();
pair E=(a*cos(ang),b*sin(ang));
dot("$O$",O,SW);dot("$F_1$",e.F1,S); dot("$F_2$",e.F2,S);
draw(Label("$x$",align=S,position=Relative(0.99)),(-5,0)--(5,0),Arrow(HookHead));
draw(Label("$y$",align=W,position=Relative(0.99)),(0,-5)--(0,5),Arrow(HookHead));
draw(c1^^c2);
draw(e,1bp+black);
dot("$E$",E,SE);
line F1E=line(e.F1,E);
line F2E=line(e.F2,E);
point[] P=intersectionpoints(F1E,c1);
point[] Q=intersectionpoints(F2E,c2);
draw(F1E);
draw(F2E);
dot("$P$",tP(ang,P),SE,p=blue);
dot("$Q$",tP(ang,Q),E,p=blue);
line [] t=tangents(e,E);
draw(t[0],1.2bp+0.8*orange);
line l1=parallel(e.F2,t[0]);
point[] R=intersectionpoints(l1,c1);
dot("$R$",tR(ang,R),SW,p=blue);
draw(l1);
point S=tR(ang,R)+tP(ang,P)-tP(ang,Q);
dot("$S$",S,SW,p=blue);
draw(tP(ang,P)--tP(ang,Q)--tR(ang,R)--S--cycle,blue);
draw(tP(ang,P)--tR(ang,R),blue);
draw(tP(ang,Q)--S,blue);
point M=intersectionpoint(tP(ang,P)--tR(ang,R),tP(ang,Q)--S);
dot("$M$",M,E,p=red);
line l2=parallel(M,line(e.F1,tP(ang,Q)));
draw(l2,1.2bp+0.8*orange);
draw(tP(ang,Q)--e.F1);
perpendicularmark(l2,t[0],size=8,quarter=3,orange,Fill(yellow));
locus=locus..M;
draw(locus,1.2bp+red);
anim.add();
restore();
}
anim.movie(options="-delay 50 -loop 0 -alpha remove -density 300",BBox(2mm,Fill(3*gray+0.2*green)));