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.



243
244
245
246
247
# File 'lib/rvg/embellishable.rb', line 243

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.



251
252
253
254
255
# File 'lib/rvg/embellishable.rb', line 251

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



258
259
260
261
262
# File 'lib/rvg/embellishable.rb', line 258

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.



266
267
268
269
270
# File 'lib/rvg/embellishable.rb', line 266

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.



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

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.



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

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.



282
283
284
285
286
# File 'lib/rvg/embellishable.rb', line 282

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