ELKA.PAS 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. Uses Graph,Crt;
  2. Type
  3. PolyPoints = record
  4. x,y : Integer;
  5. End;
  6. UserRec = array[1..4] of PointType;
  7. Var
  8. mas : UserRec;
  9. k,j,l,o,d,r : integer;
  10. Procedure RecTreug(Koor : UserRec;color : word);FAR;
  11. Const
  12. n=4;
  13. Var
  14. i : integer;
  15. Begin
  16. SetFillStyle(10,10); { \ �à®à¨á®}
  17. SetColor(color); { | ¢ª  ¯¥à}
  18. { | ¢®£® }
  19. DrawPoly(n,koor); { | }
  20. FloodFill(koor[1].x,koor[1].y+10,10); { / âà㣮«ì­¨ª }
  21. SetColor(13);
  22. Circle(koor[2].x,koor[2].y,abs((k-l))div 20);
  23. SetFillStyle(1,13); { �¨á®¢ ­¨¥ ‹¥¢®£® ªà㦪 }
  24. FloodFill(koor[2].x-1,koor[2].y,13);
  25. SetColor(12);
  26. Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20);
  27. SetFillStyle(1,12); { �¨á®¢ ­¨¥ �à ¢®£® ªà㦪 }
  28. FloodFill(koor[3].x-1,koor[3].y,12);
  29. For i:=1 to 2 do
  30. Begin
  31. SetColor(10);
  32. SetFillStyle(10,10);
  33. koor[1].y:=koor[2].y;
  34. koor[2].y:=koor[2].y+mas[2].y-j; {‚ëç¨á«¥­¨¥ ¢¥à設 á«¥¤ãî襣® }
  35. koor[3].y:=koor[2].y; { âà¥ã£®«ì­¨ª }
  36. koor[4].y:=koor[1].y;
  37. DrawPoly(n,koor); { …£® ¯à®à¨á®¢ª  ¨ § ªà è¨¢ ­¨¥}
  38. FloodFill(koor[1].x,koor[1].y+10,10);
  39. SetColor(13);
  40. Circle(koor[2].x,koor[2].y,abs((k-l))div 20);
  41. SetFillStyle(1,13);
  42. FloodFill(koor[2].x-1,koor[2].y,13);
  43. SetColor(12); {Šà㦪¨ ޤ­ ª®}
  44. Circle(Koor[3].x,Koor[3].y,(abs(k-l))div 20);
  45. SetFillStyle(1,12);
  46. FloodFill(koor[3].x-1,koor[3].y,12);
  47. End;
  48. SetColor(6);
  49. Rectangle(mas[1].x-((l-k)div 8),koor[3].y+1,mas[1].x+((l-k)div 8),koor[3].y+((mas[3].y-mas[1].y)div 5));
  50. SetFillStyle(11,6); { �à®à¨á®ª  ­¨¦­¥£® ª®à¨ç­¥¢®£®}
  51. FloodFill(mas[1].x,koor[3].y+4,6); { ¯àאַ㣮«ì­¨ª  }
  52. End;
  53. Procedure RectElka(x,y,xx,yy : Integer);
  54. Begin
  55. mas[1].x:=((x+xx)div 2);
  56. mas[4].x:=mas[1].x;
  57. mas[2].x:=x;mas[3].x:=xx; { ‚ëç¨á«¥­¨ï ¢¥à設 âà-ª  ¢¨¤¨¬®}
  58. mas[1].y:=y;mas[2].y:=((yy+y)div 4);mas[3].y:=mas[2].y;
  59. mas[4].y:=mas[1].y;
  60. RecTreug(mas,10);
  61. End;
  62. Begin
  63. Readln(k,j,l,o);
  64. r:=2;
  65. d:=detect;
  66. InitGraph(d,r,'');
  67. If GraphReSult=GrOK then rectelka(k,j,l,o);
  68. Readkey;
  69. CloseGraph;
  70. End.