Advertisement
ipilot

Untitled

Nov 5th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.38 KB | None | 0 0
  1. uses crt;
  2.  
  3. var x0, y0:integer;
  4.     rect1:array[1..2] of integer=(13, 8);
  5.  
  6. procedure draw_rect(xa, ya, h ,w:integer);
  7. var i:integer;
  8. begin
  9.    for i:=xa to xa+w-1 do
  10.    begin
  11.       gotoxy(i, ya);
  12.       write('*');
  13.       gotoxy(i, ya+h-1);
  14.       write('*');
  15.    end;
  16.    for i:=ya+1 to ya+h-2 do
  17.    begin
  18.       gotoxy(xa, i);
  19.       write('*');
  20.       gotoxy(xa+w-1, i);
  21.       write('*');
  22.    end;
  23. end;
  24.  
  25. procedure draw_oval(x0, y0, h, w:integer);
  26. var i:integer;
  27. begin
  28.    for i:=1 to (h div 2)+1 do
  29.    begin
  30.        gotoxy(x0-(w div 2)+(i-1), y0+(i-1));
  31.        write('*');
  32.        gotoxy(x0-(w div 2)+(i-1), y0-(i-1));
  33.        write('*');
  34.        gotoxy(x0+(w div 2)-(i-1), y0+(i-1));
  35.        write('*');
  36.        gotoxy(x0+(w div 2)-(i-1), y0-(i-1));
  37.        write('*');
  38.     end;
  39.     for i:=1 to (w div 2)-1 do
  40.     begin
  41.       gotoxy(x0-(i-1), y0+(h div 2));
  42.       write('*');
  43.       gotoxy(x0+(i-1), y0+(h div 2));
  44.       write('*');
  45.       gotoxy(x0-(i-1), y0-(h div 2));
  46.       write('*');
  47.       gotoxy(x0+(i-1), y0-(h div 2));
  48.       write('*');
  49.     end;
  50. end;
  51.  
  52. procedure draw_line(x0, y0, l:integer; alph:double);
  53. var i, dx, dy:integer;
  54. begin
  55.    if ((alph = 0.5) or (alph = 1.5)) then
  56.    begin
  57.       dx:=0;
  58.       dy:=-round(sin(alph*pi)/abs(sin(alph*pi)));
  59.    end
  60.    else
  61.       if ((alph = 0) or (alph = 1)) then
  62.       begin
  63.          dy:=0;
  64.          dx:=round(abs(cos(alph*pi))/cos(alph*pi));
  65.       end
  66.       else
  67.       begin
  68.         dy:=-round(sin(alph*pi)/abs(sin(alph*pi)));
  69.         dx:=round(abs(cos(alph*pi))/cos(alph*pi));
  70.       end;
  71.    gotoxy(x0, y0);
  72.    for i:=1 to l do
  73.    begin
  74.       write('*');
  75.       x0:=x0+dx;
  76.       y0:=y0+dy;
  77.       gotoxy(x0, y0);
  78.    end;
  79. end;
  80.  
  81. procedure drawh(x0:integer);
  82. begin
  83. draw_rect(13+x0, 8, 8, 13);
  84. draw_oval(19+x0, 4, 5, 7);
  85. draw_line(12+x0, 8, 8, 1.25);
  86. draw_line(12+x0, 10, 7, 1.25);
  87. draw_line(5+x0, 16, 2, 1);
  88. draw_line(26+x0, 8, 8, 1.75);
  89. draw_line(26+x0, 10, 7, 1.75);
  90. draw_line(34+x0, 16, 2, 1);
  91. draw_line(19+x0, 7, 1, 1);
  92. draw_oval(19+x0, 10, 3, 3);
  93. draw_oval(19+x0, 17, 3, 3);
  94. draw_oval(19+x0, 21, 3, 3);
  95. draw_line(12+x0, 16, 8, 1.25);
  96. draw_line(26+x0, 16, 8, 1.75);
  97. draw_line(4+x0, 24, 31, 0);
  98. draw_line(16+x0, 25, 8, 1.5);
  99. draw_line(19+x0, 25, 10, 1.5);
  100. draw_line(22+x0, 25, 8, 1.5);
  101. draw_line(16+x0, 33, 7, 0);
  102. draw_line(14+x0, 35, 11, 0);
  103. draw_line(15+x0, 34, 1, 0);
  104. draw_line(23+x0, 34, 1, 0);
  105. end;
  106.  
  107. begin
  108. clrscr;
  109. x0:=0;
  110. textcolor(14);
  111. drawh(0);
  112. textcolor(lightgreen);
  113. drawh(43);
  114. gotoxy(1,1);
  115. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement