Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- numeric d;
- numeric ratiox, ratioy;
- def mycircle(expr x, y)=
- draw (x-d,y)..(x,y+d)..(x+d,y)..(x,y-d)..cycle
- enddef;
- def myline(expr x, y, z, w) =
- save ratioy, ratiox;
- ratiox:=(z-x)/(sqrt((z-x)*(z-x)+(w-y)*(w-y)));
- ratioy:=(w-y)/(sqrt((z-x)*(z-x)+(w-y)*(w-y)));
- draw (x+d*ratiox,y+d*ratioy)--(z-d*ratiox,w-d*ratioy);
- enddef;
- def mybline(expr x, y, z, w) =
- save ratioy, ratiox;
- pickup pencircle scaled 1.5pt;
- ratiox:=(z-x)/(sqrt((z-x)*(z-x)+(w-y)*(w-y)));
- ratioy:=(w-y)/(sqrt((z-x)*(z-x)+(w-y)*(w-y)));
- draw (x+d*ratiox,y+d*ratioy)--(z-d*ratiox,w-d*ratioy);
- pickup pencircle scaled .5pt;
- enddef;
- beginfig(1);
- numeric x[],y[];
- u:=1.3cm;
- d:=0.05u;
- for i=0 upto 4:
- x[i]:=u*cosd(72*i+18); y[i]:=u*sind(72*i+18);
- mycircle(x[i],y[i]);
- endfor
- myline(x[0],y[0],x[1],y[1]);
- myline(x[0],y[0],x[2],y[2]);
- myline(x[0],y[0],x[3],y[3]);
- myline(x[0],y[0],x[4],y[4]);
- myline(x[1],y[1],x[2],y[2]);
- myline(x[1],y[1],x[3],y[3]);
- myline(x[1],y[1],x[4],y[4]);
- myline(x[2],y[2],x[3],y[3]);
- myline(x[2],y[2],x[4],y[4]);
- myline(x[3],y[3],x[4],y[4]);
- endfig;
- beginfig(2);
- u:=1.3cm;
- d:=0.05u;
- numeric x[],y[];
- l:=-u/2;
- r:=u/2;
- h:=u;
- x[0]:=l; y[0]:=-h/2;
- x[1]:=l; y[1]:=h/2;
- x[2]:=r; y[2]:=0;
- x[3]:=r; y[3]:=-h;
- x[4]:=r; y[4]:=h;
- for i=0 upto 4:
- mycircle(x[i],y[i]);
- endfor
- for i=2 upto 4:
- myline(x[0],y[0],x[i],y[i]);
- myline(x[1],y[1],x[i],y[i]);
- endfor
- endfig;
- beginfig(3);
- numeric a;
- u:=1.3cm;
- d:=0.05u;
- for i=0 upto 4:
- y[i]:=0;
- x[i]:=i*u/2;
- mycircle(x[i],y[i]);
- endfor;
- for i=0 upto 3:
- myline(x[i],y[i],x[i+1],y[i+1]);
- endfor;
- endfig;
- beginfig(4);
- numeric x[],y[];
- u:=1.3cm;
- d:=0.05u;
- for i=0 upto 4:
- x[i]:=u*cosd(72*i+18); y[i]:=u*sind(72*i+18);
- mycircle(x[i],y[i]);
- endfor
- for i=0 upto 4:
- myline(x[i],y[i],x[(i+1)mod5],y[(i+1)mod5]);
- %myline(x[i],y[i],x[i+1],y[i+1]);
- endfor
- endfig;
- beginfig(5);
- numeric x[],y[];
- u:=1.3cm;
- d:=0.05u;
- for i=0 upto 3:
- x[i]:=i*u; y[i]:=i*u;
- endfor
- x5:=(x1+x2)/2;
- mycircle (x1,y1);
- mycircle (x1,y2);
- mycircle (x2,y1);
- mycircle (x2,y2);
- mycircle (x0,y2);
- mycircle (x3,y2);
- myline (x1,y1,x2,y1);
- %myline (x2,y2,x2,y1);
- %myline (x1,y1,x1,y2);
- myline (x2,y2,x1,y2);
- myline (x1,y2,x0,y2);
- myline (x3,y2,x2,y2);
- myline (x1,y1,x0,y2);
- myline (x3,y2,x2,y1);
- myline (x1,y1,x2,y2);
- myline (x0,y2,x0,y3);
- myline (x1,y2,x1,y3);
- myline (x2,y2,x2,y3);
- myline (x3,y2,x3,y3);
- draw (x0,y3-d)--(x3,y3-d);
- myline (x1,y2,x5,y3);
- myline (x2,y1,x5,y0);
- myline (x0,y2,x0,y0);
- myline (x3,y2,x3,y0);
- draw (x0,y0+d)--(x3,y0+d);
- myline (x1,y1,x1,y0);
- myline (x2,y1,x2,y0);
- myline (x1,y1,x0-d,y1);
- myline (x2,y1,x3+d,y1);
- endfig;
- \end
Advertisement
Add Comment
Please, Sign In to add comment