Square
Martin McBride, 2020-08-26
Tags geometry square
Categories generativepy generative art

The Square
class draws a square.
There is also a square
function that just creates a square as a new path.
Square class methods
The Square class inherits add
, fill
, stroke
, fill_stroke
, path
, clip
and other methods from Shape.
It has an additional method:
- of_corner_size
of_corner_size
Creates a square based on the position and size.
of_corner_size(corner, width)
Parameter | Type | Description |
---|---|---|
corner | (number, number) | A tuple of two numbers, giving the (x, y) position of the top left corner. |
width | number | The side of the square. |
square function
Adds a square as a new path, without the need to create a Square object in code.
square(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 side of the square. |
Example
Here is some example code that draws squares 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 Square, square ''' Create squares using the geometry module. ''' def draw(ctx, width, height, frame_no, frame_count): setup(ctx, width, height, width=5, background=Color(0.8)) # The square function is a convenience function that adds a square as a new the path. # You can fill or stroke it as you wish. square(ctx, (1, 1), 1) ctx.set_source_rgba(*Color(1, 0, 0)) ctx.fill() # Square objects can be filled, stroked, filled and stroked. Square(ctx).of_corner_size((3, 1), 1).fill(Color(0, .5, 0)) Square(ctx).of_corner_size((1, 3), 1).stroke(Color(0, .5, 0), 0.1) Square(ctx).of_corner_size((3, 3), 1).fill_stroke(Color(0, 0, 1), Color(0), 0.2) make_image("/tmp/geometry-squares.png", draw, 500, 500)
If you found this article useful, you might be interested in the book Computer Graphics in Python or other books by the same author.
Prev