Advertisement
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;
- def myarr(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)));
- drawarrow (x+2*d*ratiox,y+2*d*ratioy)--(z-2*d*ratiox,w-2*d*ratioy);
- enddef;
- def xmark(expr s, x) =
- draw (x,-dx)--(x,dx);
- label.bot (s,(x,-dx));
- enddef;
- def ymark(expr s, x) =
- draw (-dy,x)--(dy,x);
- label.lft (s,(-dy,x));
- enddef;
- beginfig(1)
- u:=0.5cm;
- d:=0.05u;
- ux:=1.5cm;
- uy:=1.5cm;
- %uy:=0.3cm;
- dx:=0.06cm;
- dy:=0.06cm;
- numeric a[], b[];
- numeric i;
- numeric y;
- numeric n;
- y:=0.7;
- n:=6;
- %osi
- drawarrow (-0.1ux,0)--(n*ux+.1ux,0);
- drawarrow (0,-0.1uy)--(0,n*y*uy+.2uy);
- %priamka
- draw (0,0)--(n*ux,n*y*uy);
- %labels
- for i=1 upto n:
- draw (i*ux,-dx)--(i*ux,dx);
- label.bot (decimal(i),(i*ux,-dx));
- endfor;
- for i=1 upto (floor(n*y)):
- draw (-dy,i*uy)--(dy,i*uy);
- label.lft (decimal(i),(-dy,i*uy));
- endfor;
- label.rt (btex $(n,ny)$ etex, (n*ux,n*y*uy));
- pickup pencircle scaled 1pt;
- %schody
- for i=1 upto n:
- draw ((i-1)*ux,0)--((i-1)*ux,floor(y*i)*uy)--(i*ux,floor(y*i)*uy)--(i*ux,0);
- endfor;
- endfig;
- beginfig(2)
- u:=0.5cm;
- d:=0.05u;
- ux:=1.5cm;
- uy:=1.5cm;
- %uy:=0.3cm;
- dx:=0.06cm;
- dy:=0.06cm;
- numeric a[], b[];
- numeric i;
- numeric y;
- numeric n;
- y:=0.7;
- n:=6;
- %priamka
- draw (0,0)--(n*ux,n*y*uy);
- fill (0,0)--(n*ux,n*y*uy)--(n*ux,0)--cycle withcolor 0.8white;
- for i=1 upto n:
- fill ((i-1)*ux,0)--((i-1)*ux,floor(y*i)*uy)--(i*ux,floor(y*i)*uy)--(i*ux,0)--cycle withcolor white;
- endfor;
- %osi
- drawarrow (-0.1ux,0)--(n*ux+.2ux,0);
- drawarrow (0,-0.1uy)--(0,n*y*uy+.2uy);
- %labels
- for i=1 upto n:
- draw (i*ux,-dx)--(i*ux,dx);
- label.bot (decimal(i),(i*ux,-dx));
- endfor;
- for i=1 upto (floor(n*y)):
- draw (-dy,i*uy)--(dy,i*uy);
- label.lft (decimal(i),(-dy,i*uy));
- endfor;
- label.rt (btex $(n,ny)$ etex, (n*ux,n*y*uy));
- pickup pencircle scaled 1pt;
- %schody
- for i=1 upto n:
- draw ((i-1)*ux,0)--((i-1)*ux,floor(y*i)*uy)--(i*ux,floor(y*i)*uy)--(i*ux,0);
- endfor;
- endfig;
- beginfig(3)
- u:=0.5cm;
- d:=0.05u;
- ux:=1.5cm;
- uy:=1.5cm;
- %uy:=0.3cm;
- dx:=0.06cm;
- dy:=0.06cm;
- numeric a[], b[];
- numeric i;
- numeric y;
- numeric n;
- y:=0.7;
- n:=7;
- %priamka
- draw (0,0)--(n*ux,n*y*uy);
- fill (0,0)--(n*ux,n*y*uy)--(n*ux,0)--cycle withcolor 0.8white;
- for i=1 upto n:
- fill ((i-1)*ux,0)--((i-1)*ux,floor(y*i)*uy)--(i*ux,floor(y*i)*uy)--(i*ux,0)--cycle withcolor white;
- endfor;
- %osi
- drawarrow (-0.1ux,0)--(n*ux+.2ux,0);
- drawarrow (0,-0.1uy)--(0,n*y*uy+.2uy);
- %convex hull
- draw (0,0)--(1*ux,1*uy)--(2*ux,2*uy)--(4*ux,3*uy)--(5*ux,4*uy)--(7*ux,5*uy);
- %labels
- for i=1 upto n:
- draw (i*ux,-dx)--(i*ux,dx);
- label.bot (decimal(i),(i*ux,-dx));
- endfor;
- for i=1 upto (floor(n*y)):
- draw (-dy,i*uy)--(dy,i*uy);
- label.lft (decimal(i),(-dy,i*uy));
- endfor;
- label.rt (btex $(n,ny)$ etex, (n*ux,n*y*uy));
- pickup pencircle scaled 1pt;
- %schody
- for i=1 upto n:
- draw ((i-1)*ux,0)--((i-1)*ux,floor(y*i)*uy)--(i*ux,floor(y*i)*uy)--(i*ux,0);
- endfor;
- endfig;
- \end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement