Triangle
Martin McBride, 2020-08-26
Tags geometry triangle
Categories generativepy generative art

The Triangle
class draws a triangle.
There is also a triangle
function that just creates a triangle as a new path.
Triangle class methods
The Triangle class inherits add
, fill
, stroke
, fill_stroke
, path
, clip
and other methods from Shape.
It has additional methods:
- of_corners
of_corners
Creates a triangle based on a set of 3 points.
of_corners(a, b, c)
Parameter | Type | Description |
---|---|---|
a | (number, number) | (x, y) tuple, giving the position of corner a of the triangle. |
b | (number, number) | (x, y) tuple, giving the position of corner b of the triangle. |
c | (number, number) | (x, y) tuple, giving the position of corner c of the triangle. |
triangle function
Adds a triangle as a new path, without the need to create a Triangle
object in code.
triangle(ctx, points)
Parameter | Type | Description |
---|---|---|
ctx | Context | The Pycairo Context to draw to |
a | (number, number) | (x, y) tuple, giving the position of corner a of the triangle. |
b | (number, number) | (x, y) tuple, giving the position of corner b of the triangle. |
c | (number, number) | (x, y) tuple, giving the position of corner c of the triangle. |
Example
Here is some example code that draws triangles 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 triangle, Triangle ''' Create triangles using the geometry module. ''' def draw(ctx, width, height, frame_no, frame_count): setup(ctx, width, height, width=500, background=Color(0.8)) # The triangle function is a convenience function that adds a triangle as a new path. # You can fill or stroke it as you wish. triangle(ctx, (100, 100), (150, 50), (200, 150)) ctx.set_source_rgba(*Color(1, 0, 0)) ctx.fill() Triangle(ctx).of_corners((300, 100), (300, 150), (400, 200)).stroke(Color('orange'), 10) make_image("/tmp/geometry-triangle.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