Initial implementation of curves

Contributes to #37
This commit is contained in:
Andy Meneely
2015-03-19 18:15:24 -04:00
parent 6f40e1db99
commit 2cc9cc8e93
8 changed files with 68 additions and 3 deletions
+21
View File
@@ -113,5 +113,26 @@ module Squib
end
end
# Draw a curve using the given coordinates
#
# @option opts range [Enumerable, :all] (:all) the range of cards over which this will be rendered. See {file:README.md#Specifying_Ranges Specifying Ranges}
# @option opts x1 [Integer] (0) the x-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts y1 [Integer] (0) the y-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts x2 [Integer] (50) the x-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts y2 [Integer] (50) the y-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts stroke_color [String] (:black) the color with which to stroke the line. See {file:README.md#Specifying_Colors___Gradients Specifying Colors & Gradients}.
# @option opts stroke_width [Decimal] (2.0) the width of the outside stroke. Supports Unit Conversion, see {file:README.md#Units Units}.
# @return [nil] intended to be void
# @api public
def curve(opts = {})
opts = needs(opts, [:range, :x1, :y1, :dx1, :dy1, :x2, :y2, :dx2, :dy2,
:layout, :fill_color, :stroke_color, :stroke_width])
opts[:range].each do |i|
@cards[i].curve(opts[:x1][i], opts[:y1][i], opts[:dx1][i], opts[:dy1][i],
opts[:x2][i], opts[:y2][i], opts[:dx2][i], opts[:dy2][i],
opts[:fill_color][i], opts[:stroke_color][i], opts[:stroke_width][i])
end
end
end
end