trees.pas 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. uses graph,crt;
  2. const
  3. numvert=14;
  4. Type TTree = array [1..numvert*2] of word;
  5. Const
  6. TREE: TTree = (0,0, 10,3, 12,0, 14,4, 24,0, 14,6, 14,40, 35,70,
  7. 13,45, 12,80, 11,45 ,0,60, 10,40, 10,6);
  8. Procedure Write_Cool_Tree(x,y,scale,color:word);
  9. var
  10. i: word;
  11. tr : TTree;
  12. begin
  13. for i := 0 to numvert-1 do
  14. begin
  15. tr[2*i+1] := (x+tree[2*i+1]*scale);
  16. tr[2*i+2] := (y-tree[2*i+2]*scale);
  17. end;
  18. SEtFillStyle(SolidFill,color);
  19. SetColor(color);
  20. FillPoly(numvert,TR);
  21. setcolor(green);
  22. for i := 1 to random(100) do begin
  23. moveto(tr[19],tr[20]);
  24. LineRel(Random(30*scale)-15*scale,Random(30*scale)-15*scale);
  25. end;
  26. for i := 1 to random(100) do begin
  27. moveto(tr[15],tr[16]);
  28. LineRel(Random(30*scale)-15*scale,Random(30*scale)-15*scale);
  29. end;
  30. for i := 1 to random(50) do begin
  31. moveto(tr[23],tr[24]);
  32. LineRel(Random(30*scale)-15*scale,Random(30*scale)-15*scale);
  33. end;
  34. end;
  35. {-----------------}
  36. var
  37. grDriver: Integer;
  38. grMode: Integer;
  39. ErrCode: Integer;
  40. i,x2,y2,s2 : word;
  41. begin
  42. grDriver := Detect;
  43. InitGraph(grDriver, grMode,' ');
  44. ErrCode := GraphResult;
  45. if ErrCode <> grOk then
  46. begin
  47. WriteLn('Setting graphics mode error');
  48. Halt(1);
  49. end;
  50. randomize;
  51. for i:=1 to random(19)+1 do
  52. begin
  53. s2:= 1;
  54. x2 := random(640-35*s2);
  55. y2 := 120;
  56. Write_COOL_TREE(x2,y2+random(10),s2,random(15));
  57. end;
  58. for i:=1 to random(15)+1 do
  59. begin
  60. s2:= 2;
  61. x2 := random(640-35*s2);
  62. y2 := 230;
  63. Write_COOL_TREE(x2,y2+random(10),s2,random(15));
  64. end;
  65. for i:=1 to random(8)+1 do
  66. begin
  67. s2:= 3;
  68. x2 := random(640-35*s2);
  69. y2 := 350;
  70. Write_COOL_TREE(x2,y2+random(10),s2,random(15));
  71. end;
  72. for i:=1 to random(5)+1 do
  73. begin
  74. s2:= 4;
  75. x2 := random(640-35*s2);
  76. y2 := 470;
  77. Write_COOL_TREE(x2,y2+random(10),s2,random(15));
  78. end;
  79. ReadKey;
  80. CloseGraph;
  81. END.