u = 1cm; % еее Produit scalaire def ps(expr a,b) = (xpart a)*(xpart b) + (ypart a)*(ypart b) enddef; % еее Distance def distance(expr a,b) = sqrt(ps(b-a,b-a)) enddef; % еее Mediatrice def mediatrice (expr a, b, x) = (0.5[a,b]+(x*(b-a) rotated 90))--(0.5[a,b]+(x*(b-a) rotated -90)) enddef; % еее Centre du cercle circonscrit def centre_cercle_c(expr a, b ,c) = (mediatrice(a,b,10)) intersectionpoint (mediatrice(b,c,10)) enddef; % еее Cercle circonscrit def cercle_c (expr a, b, c) = fullcircle scaled (2*distance(a,centre_cercle_c(a,b,c))) shifted (centre_cercle_c(a,b,c)) enddef; % еее Point inverse def inverse (expr p, c, x) = (x/distance(p,c))**2*(p-c) shifted c enddef; %====================================================================== beginfig(1); path cercle; cercle = fullcircle scaled 8u shifted (6u,3u); draw cercle; z0 = (0,0); z1 = point 1.6 of cercle; z4 = point 7.3 of cercle; z2 = cercle intersectionpoint (z0--z1); z5 = cercle intersectionpoint (z0--z4); pickup pencircle scaled 1.5pt; draw z0--z1; draw z0--z4; pickup pencircle scaled 0.5pt; draw z1--z4; draw z2--z5; dotlabel.lft(btex $O$ etex,z0); dotlabel.urt(btex $A$ etex,z1); dotlabel.ulft(btex $A'$etex,z2); dotlabel.lrt(btex $B$ etex,z4); dotlabel.bot(btex $B'$ etex,z5); endfig; %====================================================================== beginfig(2); path cardioide, parabole; cardioide = (0,0){dir 180} for i = 1 upto 17: ..(1.8u*(1+cosd(180-10*i))*cosd(180-10*i),1.8u*(1+cosd(180-10*i))*sind(180-10*i)) endfor ..(1.8u*2,0){dir -90}; parabole = (1.8u*0.5,0){dir 90} for i = 1 upto 17: ..(1.8u/(1+cosd(10*i))*cosd(10*i),1.8u/(1+cosd(10*i))*sind(10*i)) endfor; drawarrow (-4u,0)--(4u,0); drawarrow (0,-4u)--(0,4u); pickup pencircle scaled 1.5pt; draw cardioide; draw cardioide yscaled -1; draw parabole; draw parabole yscaled -1; z0 = (0,0); z1 = point 11 of cardioide; z2 = parabole intersectionpoint (z0--10z1); pickup pencircle scaled 0.5pt; draw z0--z1; z4 = parabole intersectiontimes (z0--10z1); z1 - (a,0) = whatever*direction 11 of cardioide; (b,4u) - z1 = whatever*direction 11 of cardioide; (c,-4u) - z2 = whatever*direction x4 of parabole; (d,4u) - z2 = whatever*direction x4 of parabole; draw (a,0)--(b,4u); draw (c,-4u)--(d,4u); z3 = ((a,0)--(b,4u)) intersectionpoint ((c,-4u)--(d,4u)); draw (z3+3*(z3-0.5[z1,z2]))--(0.5[z1,z2]-3*(z3-0.5[z1,z2])); % ------------------------ clip currentpicture to (-4u,-4u)--(-4u,4u)--(4u,4u)--(4u,-4u)--cycle; % ------------------------ dotlabel.lrt(btex $O$ etex, z0); dotlabel.ulft(btex $M$ etex, z1); dotlabel.rt(btex $M'$ etex, z2); label.lft(btex $y$ etex, (-0.5mm,4u)); label.bot(btex $x$ etex, (4u,-0.5mm)); endfig; %====================================================================== beginfig(3); path ca; ca = fullcircle scaled 3u; z0 = (2u,2u); z1 = (7u,2u); z2 = (12u,2u); pickup pencircle scaled 1.5pt; draw ca shifted z0; draw ca shifted z1; draw ca shifted z2; pickup pencircle scaled 0.5pt; draw fullcircle scaled 2.4u shifted (1.2/sqrt(2)*u+2u,1.2/sqrt(2)*u+2u); z3 = (fullcircle scaled 2.4u shifted (1.2/sqrt(2)*u+2u,1.2/sqrt(2)*u+2u)) intersectionpoint (ca shifted z0); draw (x3-u,y3+u)--(x3+2.6u,y3-2.6u); z4 = point 1.9 of (ca shifted z1); z5 = point 0.5 of (ca shifted z1); z6 = (0.5u, 0.4u) shifted z1; draw cercle_c(z4,z5,z6); draw cercle_c(z4,z5,inverse(z6,z1,1.5u)); draw ((-u,-2u)--(u,2u)) shifted z2; % ------------------------ dotlabel.llft(btex $O$ etex, z0); dotlabel.llft(btex $O$ etex, z1); dotlabel.lft(btex $O$ etex, z2); label.bot(btex \bf a) etex,(2u,0)); label.bot(btex \bf b) etex,(7u,0)); label.bot(btex \bf c) etex,(12u,0)); label.top(btex $\cal D$ etex,z3+(-0.1u,.3u)); label.rt(btex $\cal C$ etex,z0+(1.9u,1.9u)); label.urt(btex ${\cal C}$ etex,z1+(1.2u,1.2u)); label.urt(btex ${\cal C}'$ etex,z1+(2.2u,2.2u)); label.lrt(btex $\cal D$ etex,z2+(u,1.9u)); endfig; end