Module: Magick::RVG::ShapeConstructors

Included in:
ClipPath, Embellishable, Pattern
Defined in:
lib/rvg/embellishable.rb

Overview

Methods that construct basic shapes within a container

Instance Method Summary collapse

Instance Method Details

#circle(r, cx = 0, cy = 0) ⇒ Object

Draws a circle whose center is [cx, cy] and radius is r.



241
242
243
244
245
# File 'lib/rvg/embellishable.rb', line 241

def circle(r, cx = 0, cy = 0)
  circle = Circle.new(r, cx, cy)
  @content << circle
  circle
end

#ellipse(rx, ry, cx = 0, cy = 0) ⇒ Object

Draws an ellipse whose center is [cx, cy] and having a horizontal radius rx and vertical radius ry.



249
250
251
252
253
# File 'lib/rvg/embellishable.rb', line 249

def ellipse(rx, ry, cx = 0, cy = 0)
  ellipse = Ellipse.new(rx, ry, cx, cy)
  @content << ellipse
  ellipse
end

#line(x1 = 0, y1 = 0, x2 = 0, y2 = 0) ⇒ Object

Draws a line from [x1, y1] to [x2, y2].



256
257
258
259
260
# File 'lib/rvg/embellishable.rb', line 256

def line(x1 = 0, y1 = 0, x2 = 0, y2 = 0)
  line = Line.new(x1, y1, x2, y2)
  @content << line
  line
end

#path(path) ⇒ Object

Draws a path defined by an SVG path string or a PathData object.



264
265
266
267
268
# File 'lib/rvg/embellishable.rb', line 264

def path(path)
  path = Path.new(path)
  @content << path
  path
end

#polygon(*points) ⇒ Object

Draws a polygon. The arguments are [x, y] pairs that define the points that make up the polygon. At least two points must be specified. If the last point is not the same as the first, adds an additional point to close the polygon.



291
292
293
294
295
# File 'lib/rvg/embellishable.rb', line 291

def polygon(*points)
  polygon = Polygon.new(*points)
  @content << polygon
  polygon
end

#polyline(*points) ⇒ Object

Draws a polyline. The arguments are [x, y] pairs that define the points that make up the polyline. At least two points must be specified.



300
301
302
303
304
# File 'lib/rvg/embellishable.rb', line 300

def polyline(*points)
  polyline = Polyline.new(*points)
  @content << polyline
  polyline
end

#rect(width, height, x = 0, y = 0) ⇒ Object

Draws a rectangle whose upper-left corner is [x, y] and with the specified width and height. Unless otherwise specified the rectangle has square corners. Returns a Rectangle object.

Draw a rectangle with rounded corners by calling the #round method on the Rectangle object. rx and ry are the corner radii in the x- and y-directions. For example:

canvas.rect(width, height, x, y).round(8, 6)

If ry is omitted it defaults to rx.



280
281
282
283
284
# File 'lib/rvg/embellishable.rb', line 280

def rect(width, height, x = 0, y = 0)
  rect = Rect.new(width, height, x, y)
  @content << rect
  rect
end