The Rectangle
class draws a rectangle.
There is also a rectangle
function that just creates a rectangle as a new path.
The Rectangle class inherits add
, fill
, stroke
, fill_stroke
, path
, clip
and other methods from Shape.
It has an additional method:
Creates a rectangle based on the position and size.
of_corner_size(corner, width, height)
Parameter | Type | Description |
---|---|---|
corner | (number, number) | A tuple of two numbers, giving the (x, y) position of the top left corner. |
width | number | The width. |
height | number | The height. |
Adds a rectangle as a new path, without the need to create a Rectangle object in code.
rectangle(ctx, corner, width, height)
Parameter | Type | Description |
---|---|---|
ctx | Context | The Pycairo Context to draw to |
corner | (number, number) | A tuple of two numbers, giving the (x, y) position of the top left corner. |
width | number | The width. |
height | number | The height. |
Here is some example code that draws rectangles using the class and the utility function. The full code can be found on github.
from generativepy.drawing import make_image, setup from generativepy.color import Color from generativepy.geometry import Rectangle, rectangle ''' Create rectangles using the geometry module. ''' def draw(ctx, width, height, frame_no, frame_count): setup(ctx, width, height, width=5, background=Color(0.8)) # The rectangle function is a convenience function that adds a rectangle as a new the path. # You can fill or stroke it as you wish. rectangle(ctx, (1, 1), 1, 1.2) ctx.set_source_rgba(*Color(1, 0, 0)) ctx.fill() # Rectangle objects can be filled, stroked, filled and stroked. Rectangle(ctx).of_corner_size((3, 1), 1, 1.2).fill(Color(0, .5, 0)) Rectangle(ctx).of_corner_size((1, 3), 1.2, 1).stroke(Color(0, .5, 0), 0.1) Rectangle(ctx).of_corner_size((3, 3), 1.2, 1).fill_stroke(Color(0, 0, 1), Color(0), 0.2) make_image("/tmp/geometry-rectangles.png", draw, 500, 500)
Copyright (c) Axlesoft Ltd 2020