いわゆる「フォードの円」というものを描いてみました。これについてはここで知ったものです。ありがとうございます。
Ruby で描きました。描画には自作の Gem 'oekaki' を使っています。
oekaki_sample10.rb
require 'oekaki' Width, Height = 500, 500 Oekaki.app width: Width, height: Height do draw do color(0, 0, 0) rectangle(true, 0, 0, Width, Height) color(0, 65535, 0) r = Width / 2 circle(false, 0, r, r) circle(false, 2 * r, r, r) (1..9).to_a.combination(2) do |p, q| x = p / q.to_f y = 1 / (2 * q ** 2).to_f wx, wy = Width * x, Height * y circle(false, wx, Height - wy, wy) end end end
Gem 'oekaki' についてはこちら。
oekaki | RubyGems.org | your community gem host
GTK+でお絵かきしてみた(Ruby) - Camera Obscura
なお、Gem 'oekaki' のバージョンを 0.0.11 に上げました。
Tool#ciecle と Tool#timer_stop の二つのメソッドを追加しました。circle(fill, x, y, r, color = nil)
は円を arc メソッドよりも簡単に書けるようにしただけです。(x, y) は中心の座標、r は半径です。timer_stop(id)
は Gtk.timeout_remove(id) のエイリアスに過ぎません。