Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import geometry;
- import patterns;
- size(9cm, 0);
- defaultpen(fontsize(10pt));
- dotfactor = 4;
- real R1,R2,R3,R4;
- pair A,B,C,D,L,M,K,Np,O,V;
- B=origin; A= 3*dir(30); V=5*dir(-50);
- circle incirc=incircle(A,B,V); O=incirc.C;
- M=intersectionpoints(incirc, line(B,V))[0];
- L=intersectionpoints(incirc, line(B,A))[0];
- K=intersectionpoints(incirc, line(A,V))[0];
- C=point(line(M,V), 1/6);
- line[] t=tangents(incirc, C);
- D=intersectionpoint(t[0],line(A,V));
- Np=intersectionpoints(incirc, line(C,D))[0];
- circle circ1=incircle(A,L,K); point O1=circ1.C; R1=circ1.r;
- circle circ2=incircle(B,L,M); point O2=circ2.C; R2=circ2.r;
- circle circ3=incircle(C,M,Np); point O3=circ3.C; R3=circ3.r;
- circle circ4=incircle(D,Np,K); point O4=circ4.C; R4=circ4.r;
- point X14=shift(O4)*((R4/(R1-R4))*length(line(O1,O4))*dir(O1--O4));
- point X23=shift(O3)*((R3/(R2-R3))*length(line(O2,O3))*dir(O2--O3));
- point X12=shift(O2)*((R2/(R1-R2))*length(line(O1,O2))*dir(O1--O2));
- point X34=shift(O3)*((R3/(R4-R3))*length(line(O3,O4))*dir(O4--O3));
- line[] t14=tangents(circ1, X14);
- line[] t23=tangents(circ2, X23);
- line[] t12=tangents(circ1, X12);
- line[] t34=tangents(circ3, X34);
- draw(t14[0]^^t23[1]^^t12[0]^^t34[1], red);
- point Xp=intersectionpoint(t14[0],t12[0]);
- point Yp=intersectionpoint(t23[1],t12[0]);
- point Zp=intersectionpoint(t34[1],t23[1]);
- point Tp=intersectionpoint(t34[1],t14[0]);
- draw(M--Np--K--L--cycle);
- draw(incirc^^circ1^^circ2^^circ3^^circ4);
- draw(A--B--C--D--cycle, black+pt);
- point[] p=intersectionpoints(t34[1],circ3);
- point[] p1=intersectionpoints(t34[1],circ4);
- point[] p2=intersectionpoints(t12[0],circ2);
- point[] p3=intersectionpoints(t12[0],circ1);
- point[] p5=intersectionpoints(t23[1],circ3);
- point[] p6=intersectionpoints(t23[1],circ2);
- point[] p7=intersectionpoints(t14[0],circ1);
- point[] p8=intersectionpoints(t14[0],circ4);
- point[] f1=intersectionpoints(line(L,K),circ1);
- point[] f2=intersectionpoints(line(L,M),circ2);
- point[] f3=intersectionpoints(line(Np,M),circ3);
- point[] f4=intersectionpoints(line(Np,K),circ4);
- point[] k11=intersectionpoints(circ1, line(A,D));
- point[] k12=intersectionpoints(circ1, line(A,B));
- point[] k21=intersectionpoints(circ2, line(A,B));
- point[] k22=intersectionpoints(circ2, line(B,C));
- point[] k31=intersectionpoints(circ3, line(B,C));
- point[] k32=intersectionpoints(circ3, line(C,D));
- point[] k41=intersectionpoints(circ4, line(A,D));
- point[] k42=intersectionpoints(circ4, line(C,D));
- dot(p[0]^^p1[0]^^p2[0]^^p3[0]^^p5[0]^^p6[0]^^p7[0]^^p8[0]);
- dot(f1[0]^^f2[0]^^f3[0]^^f4[0]);
- dot(k11[0]^^k12[0]^^k21[0]^^k22[0]^^k31[0]^^k32[0]^^k41[0]^^k42[0]);
- dot(Xp^^Yp^^Zp^^Tp);
- dot(A^^B^^C^^D^^M^^L^^Np^^K);
- dot(O1^^O2^^O3^^O4^^O);
- label("$A$",A,N);
- label("$B$",B,W);
- label("$C$",C,SSW);
- label("$D$",D,E);
- label("$M$",M,SSW);
- label("$N$",Np,S);
- label("$L$",L,N);
- label("$K$",K,E);
- label("$O$", O, S);
- label("$O_1$",O1,N);
- label("$O_2$",O2,W);
- label("$O_3$",O3,0.0001*SSW);
- label("$O_4$",O4,E);
- label("$X$",Xp, SSW);
- label("$Y$",Yp, ESE);
- label("$Z$",Zp, NNE);
- label("$T$",Tp, WNW);
- label(Label("$a_{12}$", Relative(0.5)), Xp--Yp, red);
- label(Label("$a_{14}$", Relative(0.5)), Tp--Xp, red);
- label(Label("$a_{34}$", Relative(0.5)), Zp--Tp, red);
- label(Label("$a_{23}$", Relative(0.5)), Yp--Zp, red);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement