module SVGPlot::Transform
Provide methods for SVG transformations
Public Instance Methods
matrix(*args)
click to toggle source
# File lib/svgplot/transform.rb, line 31 def matrix(*args) fail('matrix takes 6 args') unless args.size == 6 add_transform(:matrix, args.join(', ')) self end
rotate(angle, cx = nil, cy = nil)
click to toggle source
# File lib/svgplot/transform.rb, line 15 def rotate(angle, cx = nil, cy = nil) string = [cx, cy].any?(&:nil?) ? "#{angle}" : "#{angle}, #{cx}, #{cy}" add_transform(:rotate, string) self end
scale(sx, sy = 1)
click to toggle source
# File lib/svgplot/transform.rb, line 10 def scale(sx, sy = 1) add_transform(:scale, "#{sx}, #{sy}") self end
skew_x(angle)
click to toggle source
# File lib/svgplot/transform.rb, line 21 def skew_x(angle) add_transform(:skewX, "#{angle}") self end
skew_y(angle)
click to toggle source
# File lib/svgplot/transform.rb, line 26 def skew_y(angle) add_transform(:skewY, "#{angle}") self end
translate(tx, ty = 0)
click to toggle source
# File lib/svgplot/transform.rb, line 5 def translate(tx, ty = 0) add_transform(:translate, "#{tx}, #{ty}") self end
Private Instance Methods
add_transform(type, params)
click to toggle source
# File lib/svgplot/transform.rb, line 39 def add_transform(type, params) validate_attribute(:transform) @attributes[:transform] ||= '' @attributes[:transform] << ' ' if @attributes[:transform].size > 0 @attributes[:transform] << "#{type}(#{params})" end