contains_points(self, points, transform=None, radius=0.0)
The path is always treated as closed; i.e. if the last code is not CLOSEPOLY an implicit segment connecting the last vertex to the first vertex is assumed.
The current algorithm has some limitations:
The result is undefined for points exactly at the boundary (i.e. at the path shifted by radius/2).
The result is undefined if there is no enclosed area, i.e. all vertices are on a straight line.
If bounding lines start to cross each other due to radius shift, the result is not guaranteed to be correct.
The points to check. Columns contain x and y values.
If not None
, points will be compared to self
transformed by transform; i.e. for a correct check, transform should transform the path into the coordinate system of points.
Add an additional margin on the path in coordinates of points. The path is extended tangentially by radius/2; i.e. if you would draw the path with a linewidth of radius, all points on the line would still be considered to be contained in the area. Conversely, negative values shrink the area: Points on the imaginary line will be considered outside the area.
Return whether the area enclosed by the path contains the given points.
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them