1  =begin
  2  
  3  4tiles_ver2.rb:
  4    タートルグラフィクスにより正方形2x2個からなる図形を描く.
  5    正方形のサイズは小さい方から順に100x100,110x110,120x120,130x130とする.
  6    正方形同士の間を8ずつ空けることにする.
  7  
  8  =end
  9  
 10  # タートルグラフィクスパッケージの読み込み
 11  require 'gtr/turtle'
 12  include Gtr
 13  
 14  ## 亀の動作の記述
 15  class Turtle
 16    def draw
 17      set_speed(10)      # アニメーションのスピード設定
 18  
 19      # 1番目の正方形(100x100,青)
 20      square1()
 21  
 22      # 2番目の正方形の右下角に移動
 23      set_color(nil)
 24      turnto(90)         # 西を向く
 25      forward(8)
 26      
 27      # 2番目の正方形(110x110,赤)
 28      square2()
 29  
 30      # 3番目の正方形の右上角に移動
 31      set_color(nil)
 32      turnto(180)         # 南を向く
 33      forward(8)
 34  
 35      # 3番目の正方形(120x120,黄)
 36      square3()
 37  
 38      # 4番目の正方形の左上角に移動
 39      set_color(nil)
 40      turnto(270)         # 東を向く
 41      forward(8)
 42  
 43      # 4番目の正方形(130x130,緑)
 44      square4()
 45  
 46      # 最初の点に戻る
 47      set_color(nil)
 48      turnto(0)      # 北を向く
 49      forward(8)
 50  
 51    end
 52  
 53    # 1番目の正方形(100x100,青)
 54    def square1()
 55      set_color(0,0,255) # 色指定
 56      turnto(270)        # 東を向く
 57      forward(100) 
 58      turn(90)     
 59      forward(100) 
 60      turn(90)    
 61      forward(100) 
 62      turn(90)    
 63      forward(100) 
 64      turn(90)    
 65    end
 66  
 67    # 2番目の正方形(110x110,赤)
 68    def square2()
 69      set_color(255,0,0) # 色指定
 70      turnto(0)          # 北を向く
 71      forward(110) 
 72      turn(90)     
 73      forward(110) 
 74      turn(90)    
 75      forward(110) 
 76      turn(90)    
 77      forward(110) 
 78      turn(90)    
 79    end
 80  
 81    # 3番目の正方形(120x120,黄)
 82    def square3()
 83      set_color(255,255,0) # 色指定
 84      turnto(90)           # 西を向く
 85      forward(120) 
 86      turn(90)     
 87      forward(120) 
 88      turn(90)    
 89      forward(120) 
 90      turn(90)    
 91      forward(120) 
 92      turn(90)    
 93    end
 94  
 95    # 4番目の正方形(130x130,緑)
 96    def square4()
 97      set_color(0,255,0) # 色指定
 98      turnto(180)        # 南を向く
 99      forward(130) 
100      turn(90)     
101      forward(130) 
102      turn(90)    
103      forward(130) 
104      turn(90)    
105      forward(130) 
106      turn(90)    
107    end
108  
109  end
110  
111  # キャンバスの幅と高さ
112  WIDTH  = 640
113  HEIGHT = 480
114  
115  # キャンバスを用意する(広さ=WIDTHxHEIGHT)
116  wrl = World.new(WIDTH,HEIGHT)
117  
118  # 亀を用意する
119  t = Turtle.new()
120  
121  # キャンバス上に亀を置く
122  # t: 亀
123  # (WIDTH/2,HEIGHT/2): 亀を置く場所
124  # 0: 亀の向き(0を上向きとして反時計回りの角度で指定する)
125  wrl.register(t,WIDTH/2,HEIGHT/2,0) 
126  
127  # 画面を表示する
128  wrl.open