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.



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

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.



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

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



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

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.



276
277
278
279
280
# File 'lib/rvg/embellishable.rb', line 276

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.



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

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.



312
313
314
315
316
# File 'lib/rvg/embellishable.rb', line 312

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.



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

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