Class: IRB::Canvas
Instance Method Summary collapse
- #draw ⇒ Object
-
#initialize(h, w) ⇒ Canvas
constructor
A new instance of Canvas.
- #line(x1, y1, x2, y2) ⇒ Object
Constructor Details
#initialize(h, w) ⇒ Canvas
Returns a new instance of Canvas.
32 33 34 35 36 |
# File 'lib/irb/easter-egg.rb', line 32 def initialize((h, w)) @data = (0..h-2).map { [0] * w } @scale = [w / 2.0, h-2].min @center = Complex(w / 2, h-2) end |
Instance Method Details
#draw ⇒ Object
55 56 57 58 59 |
# File 'lib/irb/easter-egg.rb', line 55 def draw @data.each {|row| row.fill(0) } yield @data.map {|row| row.map {|n| " ',;"[n] }.join }.join("\n") end |
#line(x1, y1, x2, y2) ⇒ Object
38 39 40 41 42 |
# File 'lib/irb/easter-egg.rb', line 38 def line((x1, y1), (x2, y2)) p1 = Complex(x1, y1) / 2 * @scale + @center p2 = Complex(x2, y2) / 2 * @scale + @center line0(p1, p2) end |