The `Triangle`

class draws a triangle.

There is also a `triangle`

function that just creates a triangle as a new path.

The Triangle class inherits `add`

, `fill`

, `stroke`

, and `fill_stroke`

from Shape.

It has additional methods:

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

Adds a triangle as a new path, without the need to create a `Triangle`

object in code.

triangle(ctx, points, closed=True)

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

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)

Copyright (c) Axlesoft Ltd 2020