Py5Shape.contains()

Boolean value reflecting if the given coordinates are or are not contained within the Py5Shape object.

Examples

example picture for contains()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
def setup():
    chr_p = py5.create_font('DejaVu Sans', 32).get_shape('p')
    x_vertex_values = [chr_p.get_vertex_x(i) for i in range(chr_p.get_vertex_code_count())]
    y_vertex_values = [chr_p.get_vertex_y(i) for i in range(chr_p.get_vertex_code_count())]
    min_x, max_x = min(x_vertex_values), max(x_vertex_values)
    min_y, max_y = min(y_vertex_values), max(y_vertex_values)

    for _ in range(1000):
        x, y = py5.random(min_x, max_x), py5.random(min_y, max_y)
        if chr_p.contains(x, y):
            py5.point(2 * x, 2 * y + py5.height / 2)

Description

Boolean value reflecting if the given coordinates are or are not contained within the Py5Shape object. This method will only work for a Py5Shape object that is a PATH shape or a GROUP of PATH shapes. Use Py5Shape.get_family() to determine how a Py5Shape object was defined.

This method uses a coordinate system that is unique to the shape and how the paths were created. To get the range of relevant coordinates, start by finding the minimum and maximum values for the vertices using Py5Shape.get_vertex_x() and Py5Shape.get_vertex_y(). Do not use Py5Shape.get_width() or Py5Shape.get_height().

Underlying Java method: PShape.contains

Syntax

contains(x: float, y: float, /) -> bool

Parameters

  • x: float - x-coordinate

  • y: float - y-coordinate

Updated on September 11, 2021 16:51:34pm UTC