1 =begin
2
3 4tiles_ver4.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 4.times do
58 forward(len)
59 turn(90)
60 end
61 end
62
63
64 end
65
66 # キャンバスの幅と高さ
67 WIDTH = 640
68 HEIGHT = 480
69
70 # キャンバスを用意する(広さ=WIDTHxHEIGHT)
71 wrl = World.new(WIDTH,HEIGHT)
72
73 # 亀を用意する
74 t = Turtle.new()
75
76 # キャンバス上に亀を置く
77 # t: 亀
78 # (WIDTH/2,HEIGHT/2): 亀を置く場所
79 # 0: 亀の向き(0を上向きとして反時計回りの角度で指定する)
80 wrl.register(t,WIDTH/2,HEIGHT/2,0)
81
82 # 画面を表示する
83 wrl.open