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.



247
248
249
250
251
# File 'lib/rvg/embellishable.rb', line 247

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.



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

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



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

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.



270
271
272
273
274
# File 'lib/rvg/embellishable.rb', line 270

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.



297
298
299
300
301
# File 'lib/rvg/embellishable.rb', line 297

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.



306
307
308
309
310
# File 'lib/rvg/embellishable.rb', line 306

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.



286
287
288
289
290
# File 'lib/rvg/embellishable.rb', line 286

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