irfpy.util.triangle2d

Triangle in 2D.

Code author: Yoshifumi Futaana

Triangle, defined by x-y plane, is implemented.

Triangle2D provides the main functionality. create_triangle() will create a Triangle2D object.

Triangle P0=(1,3), P1=(3,3), P2=(1,8) is created by

>>> tri = create_triangle([1, 3], [3, 3], [1, 8])
>>> print(tri.get_area())  # Calculate the area.
5.0
>>> print(tri.isinside([2, 4]))  # P=(2,4) is inside the triangle
True
>>> print(tri.isinside([1, 2]))  # P=(1,2) is on the triangle
True
>>> print(tri.isinside([1, 2], bound=False))  # P=(1,2) is on the triangle
False
irfpy.util.triangle2d.create_triangle(p0, p1, p2)[source]
class irfpy.util.triangle2d.Triangle2D(xlist, ylist)[source]

Bases: object

Create 2D triangle.

p0

The first point

p1

The second point

p2

The third point

get_area()[source]

Return the area of the triangle.

Triangle, P0 is origin, P1 is x=1, P2 is y=1. >>> tri = Triangle2D([1, 0, 0], [0, 1, 0]) >>> print(tri.get_area()) 0.5

isinside(point, bound=True)[source]

Return true if the given point is inside or on the bound of the triangle

>>> tri = Triangle2D([0.1, 1, 0.1], [0.1, 0.1, 1])
>>> tri.isinside([0.1, 0.1])  # It is on the bound.
True
>>> tri.isinside([0.1, 0.1], bound=False)  # It is on the bound.
False
>>> tri.isinside([0.3, 0.3])
True
class irfpy.util.triangle2d.Polygon2D(xs, ys)[source]

Bases: object

Polygon, extending Triangle2D using triangulation.

>>> poly = Polygon2D([-1, 0, 1, 0], [0, -1, 0, 1])
>>> print(poly.isinside([0, 0]))   # Is (0,0) inside? Yes.
True
isinside(point)[source]
triangulate()[source]

Triangulation.

Returns:

A set of Triangle2D

Indeed, this is not yet fully debugged.

c.f. http://sonson.jp/?p=205

irfpy.util.triangle2d.doctests()[source]