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.



245
246
247
248
249
# File 'lib/rvg/embellishable.rb', line 245

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.



253
254
255
256
257
# File 'lib/rvg/embellishable.rb', line 253

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].



260
261
262
263
264
# File 'lib/rvg/embellishable.rb', line 260

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.



268
269
270
271
272
# File 'lib/rvg/embellishable.rb', line 268

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.



295
296
297
298
299
# File 'lib/rvg/embellishable.rb', line 295

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.



304
305
306
307
308
# File 'lib/rvg/embellishable.rb', line 304

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.



284
285
286
287
288
# File 'lib/rvg/embellishable.rb', line 284

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