Class Magick::RVG::PolyShape
In: lib/rvg/embellishable.rb
Parent: Shape
Enum GeometryValue Stylable RVG\n[lib/rvg/clippath.rb\nlib/rvg/container.rb\nlib/rvg/deep_equal.rb\nlib/rvg/describable.rb\nlib/rvg/embellishable.rb\nlib/rvg/misc.rb\nlib/rvg/paint.rb\nlib/rvg/pathdata.rb\nlib/rvg/rvg.rb\nlib/rvg/stretchable.rb\nlib/rvg/stylable.rb\nlib/rvg/text.rb\nlib/rvg/transformable.rb\nlib/rvg/units.rb] Transformable Stretchable Embellishable Describable Duplicatable Comparable Image ImageList Array Geometry HatchFill Draw lib/RMagick.rb lib/rvg/misc.rb Application ObjectData Pre_ObjectData_Descriptor Envelope Post_ObjectData_Descriptor IPTC Magick dot/m_14_0.png

Methods

Public Instance methods

[Source]

     # File lib/rvg/embellishable.rb, line 117
117:             def polypoints(points)
118:                 case points.length
119:                     when 1
120:                         points = Array(points[0])
121:                     when 2
122:                         x_coords = Array(points[0])
123:                         y_coords = Array(points[1])
124:                         unless x_coords.length > 0 && y_coords.length > 0
125:                             raise ArgumentError, "array arguments must contain at least one point"
126:                         end
127:                         n = x_coords.length - y_coords.length
128:                         short = n > 0 ? y_coords : x_coords
129:                         olen = short.length
130:                         n.abs.times {|x| short << short[x % olen]}
131:                         points = x_coords.zip(y_coords).flatten
132:                 end
133:                 n = points.length
134:                 if n < 4 || n % 2 != 0
135:                     raise ArgumentError, "insufficient/odd number of points specified: #{n}"
136:                 end
137:                 return Magick::RVG.convert_to_float(*points)
138:             end

[Validate]