練習:樹木曲線
早速、お絵かきクラスで練習。
require "painter"
include Math
RATE = 6
TURN = 15
DECAY = 0.8
def to_radian(d) d * Math::PI / 180 end
def tree(p, n, length, angle)
x = length * sin(to_radian(angle)) * RATE
y = length * cos(to_radian(angle)) * RATE * -1
p.draw(x, y)
if n > 0
tree(p, n - 1, length * DECAY, angle + TURN)
tree(p, n - 1, length * DECAY, angle - TURN)
end
p.move(-x, -y)
end
p = Painter.new(186, 270)
tree(p, 8, 10, 0)
Tk.mainloop