trizen_text_art.pl 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use GD::Simple;
  5. my $img = 'GD::Simple'->new(2503, 2500);
  6. $img->moveTo(540, 1980);
  7. my $nr = 360;
  8. foreach $_ (0 .. 410) {
  9. $img->fgcolor('purple');
  10. $img->turn(-90);
  11. $img->line(--$nr / 10);
  12. $img->turn(90);
  13. $img->line($nr);
  14. $img->turn(90);
  15. $img->line($nr / 10);
  16. $img->turn(90);
  17. $img->move($nr / 2);
  18. $img->turn(90);
  19. $img->move($nr / 10);
  20. $img->turn(-180);
  21. $img->line($nr);
  22. $img->turn(-90);
  23. $img->fgcolor('green');
  24. $img->move($nr / 1.5);
  25. $img->turn(-90);
  26. $img->line($nr);
  27. $img->turn(90);
  28. $img->line($nr / 2 - $nr / 10);
  29. $img->turn(45);
  30. $img->line($nr / 10);
  31. $img->turn(45);
  32. $img->line($nr / 2 - $nr / 10);
  33. $img->turn(45);
  34. $img->line($nr / 10);
  35. $img->turn(45);
  36. $img->line($nr / 2 - $nr / 10);
  37. $img->turn(-135);
  38. $img->line($nr / 2 + $nr / 4 - $nr / 10);
  39. $img->turn(-135);
  40. $img->line($nr / 10);
  41. $img->turn(180);
  42. $img->move($nr / 10);
  43. $nr -= $_;
  44. $img->fgcolor('black');
  45. $img->turn(-90);
  46. $img->move($nr / 4);
  47. $img->turn(-90);
  48. $img->line($nr);
  49. $img->move($nr / 10);
  50. $img->turn(180);
  51. $img->move($nr / 10 + 12 + 6);
  52. $img->turn(-90);
  53. $img->move($nr / 5);
  54. $img->line(12);
  55. $img->turn(180);
  56. $img->line(-12);
  57. $img->line(12);
  58. $img->turn(45);
  59. $img->line(-12);
  60. $img->turn(180);
  61. $img->line(12);
  62. $img->line(-12);
  63. $img->turn(45);
  64. $img->line(12);
  65. $img->turn(180);
  66. $img->line(-12);
  67. $img->line(12);
  68. $img->turn(45);
  69. $img->line(-12);
  70. $img->turn(180);
  71. $img->line(12);
  72. $img->line(-12);
  73. $img->turn(45);
  74. $img->line(12);
  75. $img->turn(180);
  76. $img->line(-12);
  77. $img->line(12);
  78. $img->turn(45);
  79. $img->line(-12);
  80. $img->turn(180);
  81. $img->line(12);
  82. $img->line(-12);
  83. $img->turn(45);
  84. $img->line(12);
  85. $img->turn(180);
  86. $img->line(-12);
  87. $img->line(12);
  88. $img->turn(45);
  89. $img->line(-12);
  90. $img->turn(180);
  91. $img->line(12);
  92. $img->line(-12);
  93. $nr += $_;
  94. $img->fgcolor('red');
  95. $img->turn(-45);
  96. $img->move($nr + 72);
  97. $img->turn(-90);
  98. $img->move($nr / 7);
  99. $img->turn(-65);
  100. $img->line($nr + $nr / 10);
  101. $img->turn(-115);
  102. $img->line($nr / 2);
  103. $img->turn(-90);
  104. $img->line($nr / 10);
  105. $img->turn(180);
  106. $img->move($nr / 10);
  107. $img->turn(155);
  108. $img->move($nr + $nr / 10);
  109. $img->turn(-155);
  110. $img->line($nr / 10);
  111. $img->turn(180);
  112. $img->move($nr / 10);
  113. $img->turn(90);
  114. $img->line($nr / 2 - $nr / 7 / 2);
  115. $img->turn(115);
  116. $img->move(($nr + $nr / 10) / 2);
  117. $img->turn(-115);
  118. $img->line($nr / 4);
  119. $img->turn(-90);
  120. $img->line($nr / 10);
  121. $img->turn(180);
  122. $img->move($nr / 10);
  123. $img->turn(90);
  124. $img->line($nr / 2);
  125. $img->turn(-90);
  126. $img->line($nr / 10);
  127. $img->fgcolor('orange');
  128. $img->turn(180);
  129. $img->move($nr / 2 + $nr / 10);
  130. $img->turn(-90);
  131. $img->move($nr / 5);
  132. $img->turn(-90);
  133. $img->line($nr);
  134. $img->turn(90);
  135. $img->line($nr / 2);
  136. $img->turn(90);
  137. $img->move($nr / 2);
  138. $img->turn(90);
  139. $img->line($nr / 2);
  140. $img->turn(-90);
  141. $img->move($nr / 2);
  142. $img->line($nr / 2);
  143. $img->fgcolor('blue');
  144. $img->turn(0);
  145. $img->move($nr / 4);
  146. $img->turn(-90);
  147. $img->line($nr);
  148. $img->turn(155);
  149. $img->line($nr + $nr / 10);
  150. $img->turn(-155);
  151. $img->line($nr);
  152. }
  153. my $image_name = 'trizen_text_art.png';
  154. open my $fh, '>:raw', $image_name or die $!;
  155. print $fh $img->png;
  156. close $fh;