ドラゴン曲線を描く(Ruby)
自己相似図形であるドラゴン曲線を Ruby で描いてみました。
3次。
5次。
10次。これだと確かにドラゴンみたいですね。
描画には自作の Gem 'oekaki' を使っています。
require 'oekaki' Width, Height = 600, 400 class Point < Struct.new(:x, :y) end Oekaki.app width: Width, height: Height, title: "Dragon curve" do draw do color(0, 0, 0) rectangle(true, 0, 0, Width, Height) drawing = proc do |a, b, depth| x = b.x - a.x y = a.y - b.y c = Point.new c.x = a.x + (x + y) / 2 c.y = b.y + (x + y) / 2 if depth.zero? color(0, 65535, 0) line(a.x, a.y, c.x, c.y) line(b.x, b.y, c.x, c.y) else drawing[a, c, depth - 1] drawing[b, c, depth - 1] end true end a, b = Point.new, Point.new a.x, a.y = 150.0, 150.0 b.x, b.y = Width - 150.0, 150.0 drawing[a, b, 5] end end
Gem 'oekaki' については以下。
oekaki | RubyGems.org | your community gem host
GTK+でお絵かきしてみた(Ruby) - Camera Obscura