class DrawSvg::Line

Attributes

angle[R]
length[R]

Public Class Methods

new(parent, location, length, angle, opts={}) click to toggle source
Calls superclass method DrawSvg::Item::new
# File lib/drawsvg.rb, line 128
def initialize parent, location, length, angle, opts={}
  super(parent, location)
  @length = length
  @angle = angle * Math::PI / 180
  @opts = opts
  @snap = @opts.has_key?(:snap) ? @opts.delete(:snap) : true
end

Public Instance Methods

draw() click to toggle source
# File lib/drawsvg.rb, line 135
def draw; end
p1() click to toggle source
# File lib/drawsvg.rb, line 139
def p1
  @snap ?  location : (location * scale)
end
p1_absolute() click to toggle source
# File lib/drawsvg.rb, line 145
def p1_absolute
  parent.absolute_location + p1
end
p1_svg() click to toggle source
# File lib/drawsvg.rb, line 151
def p1_svg
  Point.new(p1_absolute.x, (canvas.height - p1_absolute.y)).round
end
p2() click to toggle source
# File lib/drawsvg.rb, line 142
def p2
  p1 + Point.new(length*Math.cos(angle), length*Math.sin(angle))*scale
end
p2_absolute() click to toggle source
# File lib/drawsvg.rb, line 148
def p2_absolute
  parent.absolute_location + p2
end
p2_svg() click to toggle source
# File lib/drawsvg.rb, line 154
def p2_svg
  Point.new(p2_absolute.x, (canvas.height - p2_absolute.y)).round
end
to_svg(img) click to toggle source
# File lib/drawsvg.rb, line 136
def to_svg img
  img.line(p1_svg.x, p1_svg.y, p2_svg.x, p2_svg.y, Rasem::SVGImage::DefaultStyles[:line].merge(@opts))
end