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