argius note

プログラミング関連

Tkお絵かきクラス

簡易お絵かきクラスを作ってみました。

# painter.rb
require "tk"

class Painter
  def initialize x = 200, y = 200
    @c = TkCanvas.new("background" => "white")
    set(x, y)
  end
  def draw x, y
    xx, yy = @x + x, @y + y
    i = TkcLine.new(@c, @x, @y, xx, yy)
    @c.pack
    set(xx, yy)
  end
  def move x, y
    set(@x + x, @y + y)
  end
  def set x, y
    @x, @y = x, y
    self
  end
end

で、こんな風に使います。いびつな星が描けました。

require "painter"
p = Painter.new(200, 10)
p.draw(50, 100).draw(-125, -75).draw(125, 0).draw(-75, 75).draw(25, -100)
Tk.mainloop