1  =begin
 2  
 3  4tiles_ver3.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      square(100,270,0,0,255)
21  
22      # 2番目の正方形の右下角に移動
23      set_color(nil)
24      turnto(90)         # 西を向く
25      forward(8)
26      
27      # 2番目の正方形(110x110,赤)
28      square(110,0,255,0,0)
29  
30      # 3番目の正方形の右上角に移動
31      set_color(nil)
32      turnto(180)         # 南を向く
33      forward(8)
34  
35      # 3番目の正方形(120x120,黄)
36      square(120,90,255,255,0)
37  
38      # 4番目の正方形の左上角に移動
39      set_color(nil)
40      turnto(270)         # 東を向く
41      forward(8)
42  
43      # 4番目の正方形(130x130,緑)
44      square(130,180,0,255,0)
45  
46      # 最初の点に戻る
47      set_color(nil)
48      turnto(0)      # 北を向く
49      forward(8)
50  
51    end
52  
53    # 正方形を描く(サイズ=len×len,方位dirを向いてスタート,色=[r,g,b])
54    def square(len,dir,r,g,b)
55      set_color(r,g,b) # 色指定
56      turnto(dir)      # 方位指定
57      forward(len) 
58      turn(90)     
59      forward(len) 
60      turn(90)     
61      forward(len) 
62      turn(90)     
63      forward(len) 
64      turn(90)     
65    end
66  
67  
68  end
69  
70  # キャンバスの幅と高さ
71  WIDTH  = 640
72  HEIGHT = 480
73  
74  # キャンバスを用意する(広さ=WIDTHxHEIGHT)
75  wrl = World.new(WIDTH,HEIGHT)
76  
77  # 亀を用意する
78  t = Turtle.new()
79  
80  # キャンバス上に亀を置く
81  # t: 亀
82  # (WIDTH/2,HEIGHT/2): 亀を置く場所
83  # 0: 亀の向き(0を上向きとして反時計回りの角度で指定する)
84  wrl.register(t,WIDTH/2,HEIGHT/2,0) 
85  
86  # 画面を表示する
87  wrl.open