# 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

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

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

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

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

• Draws a polygon.

• Draws a polyline.

• Draws a rectangle whose upper-left corner is [`x`, `y`] and with the specified `width` and `height`.

## 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```