GTK+ で落書き 14(Ruby)


自作の Gem 'oekaki' を使っています。
oekaki | RubyGems.org | your community gem host
GTK+でお絵かきしてみた(Ruby) - Camera Obscura
 

require 'oekaki'

circles = []
check = lambda do |x, y, r|
  return false if x < r or y < r or x > 500 - r or y > 500 - r
  circles.each do |x1, y1, r1|
    l = Math.sqrt((x1 - x) ** 2 + (y1 - y) ** 2)
    return false if l < r + r1
  end
  circles << [x, y, r]
  true
end

Oekaki.app width: 500, height: 500 do
  draw do
    clear(color(0xad * 256, 0xd8 * 256, 0xe6 * 256))    #lightblue
  end
  
  timer(50) do
    x, y = rand(500), rand(500)
    r = rand(10..100)
    color(rand(65535), rand(65535), rand(65535))
    circle(true, x, y, r) if check.call(x, y, r)
    true
  end
end

つまらないものなのですけれど、じつは Kernel#rand の引数に Range オブジェクトを使ってみたかっただけなのでした…。一箇所だけ、わかりますかね。