User:Azjps/Asymptote

See also: Proofs without words
[asy] unitsize(60); pathpen = linewidth(0.7); pointpen = black + linewidth(5); path sepbox = unitsquare; D(sepbox);  D(shift(1.5,0)*sepbox); MP("u",D((0.3,0.65)),2*S); MP("v",D((0.7,0.35)),2*S); MP("w",D((2,0.6)),2*S); MP("X",(0.5,1.05),N); MP("G \setminus X",(2,1),N); MP("|\delta(X)|< k", (1.25,0), 2*S); for(int i = 1; i <= 5; ++i) D((0.9,i/6)--(1.6,i/6)); [/asy]
[asy] import three; real phi = (1+5^.5)/2; currentprojection=orthographic(2,-2,2); int n = 4; pen dd = linewidth(0.5);  triple P[] = {(0,1,phi),(0,-1,phi),(0,-1,-phi),(0,1,-phi),(1,phi,0),(-1,phi,0),(-1,-phi,0),(1,-phi,0),(phi,0,1),(phi,0,-1),(-phi,0,-1),(-phi,0,1)};  void drawFrontFace(int x, int y, int z){  draw(P[x] -- P[y] -- P[z] -- cycle, linewidth(0.7));  for (int i = 0; i < n; ++i) { // dot( P[x]*i/n + P[y]*(n-i)/n ); // dot( P[y]*i/n + P[z]*(n-i)/n ); // dot( P[z]*i/n + P[x]*(n-i)/n ); } }  void drawBackFace(int x, int y, int z){  draw(P[x] -- P[y] -- P[z] -- cycle, linewidth(0.5));  for (int i = 0; i < n; ++i) { // dot( P[x]*i/n + P[y]*(n-i)/n ); // dot( P[y]*i/n + P[z]*(n-i)/n ); // dot( P[z]*i/n + P[x]*(n-i)/n ); } }  void drawSpecialFace(int x, int y, int z){  draw(P[x] -- P[y] -- P[z] -- cycle, linewidth(0.7));  for (int i = 0; i < n; ++i) {  dot( P[x]*i/n + P[y]*(n-i)/n );  dot( P[y]*i/n + P[z]*(n-i)/n );  dot( P[z]*i/n + P[x]*(n-i)/n );  draw( P[x]*i/n + P[z]*(n-i)/n --  P[y]*i/n + P[z]*(n-i)/n, dd);  draw( P[x]*i/n + P[y]*(n-i)/n --  P[z]*i/n + P[y]*(n-i)/n, dd);  draw( P[y]*i/n + P[x]*(n-i)/n --  P[z]*i/n + P[x]*(n-i)/n, dd); } } //for(int i = 0; i < P.length; ++i) // label(string(i),P[i]);  drawSpecialFace(10,3,5);  drawFrontFace(6,10,11);drawFrontFace(5,10,11);drawFrontFace(5,0,11);drawFrontFace(6,10,2);drawFrontFace(3,10,2);drawFrontFace(5,10,3);drawFrontFace(5,0,4);drawFrontFace(5,4,3);drawFrontFace(9,2,3);drawFrontFace(9,4,3); drawBackFace(11,1,6);drawBackFace(7,1,8);drawBackFace(8,1,0);drawBackFace(0,4,8);drawBackFace(8,4,9);drawBackFace(7,8,9);drawBackFace(7,2,6);  drawBackFace(1,0,11);drawBackFace(7,2,9);drawBackFace(7,1,6); [/asy]
[asy] import three; real phi = (1+5^.5)/2; currentprojection=orthographic(2,-2,2); int n = 4; pen dd = linewidth(0.5);  triple P[] = {(0,1,phi),(0,-1,phi),(0,-1,-phi),(0,1,-phi),(1,phi,0),(-1,phi,0),(-1,-phi,0),(1,-phi,0),(phi,0,1),(phi,0,-1),(-phi,0,-1),(-phi,0,1)};  void drawFrontFace(int x, int y, int z){  draw(P[x] -- P[y] -- P[z] -- cycle, linewidth(0.7));  for (int i = 1; i < n; ++i) {  draw( P[x]*i/n + P[z]*(n-i)/n --  P[y]*i/n + P[z]*(n-i)/n, dd);  draw( P[x]*i/n + P[y]*(n-i)/n --  P[z]*i/n + P[y]*(n-i)/n, dd);  draw( P[y]*i/n + P[x]*(n-i)/n --  P[z]*i/n + P[x]*(n-i)/n, dd); } }  void drawBackFace(int x, int y, int z){  draw(P[x] -- P[y] -- P[z] -- cycle, linewidth(0.5));  for (int i = 1; i < n; ++i) {  draw( P[x]*i/n + P[z]*(n-i)/n --  P[y]*i/n + P[z]*(n-i)/n, blue+dd);  draw( P[x]*i/n + P[y]*(n-i)/n --  P[z]*i/n + P[y]*(n-i)/n, blue+dd);  draw( P[y]*i/n + P[x]*(n-i)/n --  P[z]*i/n + P[x]*(n-i)/n, blue+dd); } }   //for(int i = 0; i < P.length; ++i) // label(string(i),P[i]);  drawFrontFace(6,10,11);drawFrontFace(5,10,11);drawFrontFace(5,0,11);drawFrontFace(6,10,2);drawFrontFace(3,10,2);drawFrontFace(5,10,3);drawFrontFace(5,0,4);drawFrontFace(5,4,3);drawFrontFace(9,2,3);drawFrontFace(9,4,3); drawBackFace(11,1,6);drawBackFace(7,1,8);drawBackFace(8,1,0);drawBackFace(0,4,8);drawBackFace(8,4,9);drawBackFace(7,8,9);drawBackFace(7,2,6);  drawBackFace(1,0,11);drawBackFace(7,2,9);drawBackFace(7,1,6); [/asy]
/* geogebra conversion, see azjps userscripts.org/scripts/show/72997 */
import graph; defaultpen(linewidth(2)+fontsize(10)); size(200);
path p = (-0.85,-1.9)--(-0.85,3.8)--(5.1,3.8)--(5.1,-1.9)--cycle;
fill(p, gray(0.4));
real labelscalefactor = 0.5; /* changes label-to-point distance */
pen xdxdff = rgb(0.49,0.49,1);
pen qqttcc = rgb(0,0.2,0.8);
pen ffqqtt = rgb(1,0,0.2);
pen qqcctt = rgb(0,0.8,0.2);
/* segments and figures */
draw(circle((2,1),2.24),qqttcc+linewidth(3));
draw((1.68,(-4.11+2.21*1.68)/0.32)--(5.23,(-4.11+2.21*5.23)/0.32),ffqqtt + linewidth(3));
draw((-0.89,(-0+3*-0.89)/1)--(5.23,(-0+3*5.23)/1));
draw((-0.89,(+12-3*-0.89)/3)--(5.23,(+12-3*5.23)/3));
draw(circle((1.88,0.16),1.39),qqcctt+linewidth(2));
draw(circle((1.92,0.45),1.68),qqcctt+linewidth(2));
draw((0.33,0.98)--(2.86,1.14));
draw(circle((1.46,1.05),1.05),linewidth(2)+linetype("2pt 2pt")+yellow);
draw((0.33,0.98)--(1.92,0.45));
draw((1.88,0.16)--(2.86,1.14));
draw((-0.89,(+1.46+2.12*-0.89)/0.71)--(5.23,(+1.46+2.12*5.23)/0.71),linewidth(2pt)+linetype("2pt 2pt"));
draw((-0.89,(+9.74-1.58*-0.89)/1.58)--(5.23,(+9.74-1.58*5.23)/1.58),linewidth(2pt)+linetype("2pt 2pt"));
draw((0.46,1.38)--(1.46,1.05));
draw((1.46,1.05)--(2.2,1.8));
draw((1.46,1.05)--(0,0));
draw((1.46,1.05)--(4,0));
 draw((-0.89,(-5.31+3*-0.89)/1)--(5.23,(-5.31+3*5.23)/1));
// draw((-0.89,(+6.11-3*-0.89)/3)--(5.23,(+6.11-3*5.23)/3));
 draw((-0.89,(-1.66+0.97*-0.89)/-0.23)--(5.23,(-1.66+0.97*5.23)/-0.23));
 draw((-0.89,(-0+0.58*-0.89)/0.81)--(5.23,(-0+0.58*5.23)/0.81));
// draw((-0.89,(+1.53-0.38*-0.89)/0.92)--(5.23,(+1.53-0.38*5.23)/0.92));
draw((-0.12,1.71)--(1.68,-1.21));
draw((1.68,-1.21)--(3.58,2.58));
draw((0,0)--(4,0),linewidth(2)+yellow);
draw((4,0)--(1,3),linewidth(2)+yellow);
draw((1,3)--(0,0),linewidth(2)+yellow);
/* points and labels */
dotfactor = 5;
dot((0,0),UnFill);
dot((4,0),UnFill);
dot((1,3),UnFill);
dot((1.68,-1.21),UnFill);
dot((2,1),UnFill);
dot((1.46,1.05),UnFill);
dot((1.88,0.16),UnFill);
dot((2.86,1.14),UnFill);
dot((1.92,0.45),UnFill);
dot((0.33,0.98),UnFill);
dot((1.46,0),UnFill);
dot((-0.12,1.71),UnFill);
dot((3.58,2.58),UnFill);
dot((0.46,1.38),UnFill);
dot((2.2,1.8),UnFill);
dot((2.2,1.8),UnFill);
clip(p);
 (Error making remote request. Unknown error_msg)