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