geometry.geometry

Classes

Angle

An Angle in degrees (unit of measurement)

Circle

A geometric Circle on a 2D surface

Ellipse

A geometric Ellipse on a 2D surface

Polygon

An abstract class which represents Polygon on a 2D surface.

Rectangle

A geometric rectangle on a 2D surface.

Side

A side of a two dimensional Shape such as Polygon, etc.

Square

a structure which represents a

Module Contents

class geometry.geometry.Angle

An Angle in degrees (unit of measurement)

>>> Angle()
Angle(degrees=90)
>>> Angle(45.5)
Angle(degrees=45.5)
>>> Angle(-1)
Traceback (most recent call last):
    ...
TypeError: degrees must be a numeric value between 0 and 360.
>>> Angle(361)
Traceback (most recent call last):
    ...
TypeError: degrees must be a numeric value between 0 and 360.
__post_init__() None
degrees: float = 90
class geometry.geometry.Circle(radius: float)

Bases: Ellipse

A geometric Circle on a 2D surface

>>> Circle(5)
Circle(radius=5)
>>> Circle(5) is Circle(5)
False
>>> Circle(5) == Circle(5)
True
>>> Circle(5).area
78.53981633974483
>>> Circle(5).perimeter
31.41592653589793
__repr__() str
max_parts(num_cuts: float) float

Return the maximum number of parts that circle can be divided into if cut ‘num_cuts’ times.

>>> circle = Circle(5)
>>> circle.max_parts(0)
1.0
>>> circle.max_parts(7)
29.0
>>> circle.max_parts(54)
1486.0
>>> circle.max_parts(22.5)
265.375
>>> circle.max_parts(-222)
Traceback (most recent call last):
    ...
TypeError: num_cuts must be a positive numeric value.
>>> circle.max_parts("-222")
Traceback (most recent call last):
    ...
TypeError: num_cuts must be a positive numeric value.
property diameter: float
>>> Circle(5).diameter
10
radius
class geometry.geometry.Ellipse

A geometric Ellipse on a 2D surface

>>> Ellipse(5, 10)
Ellipse(major_radius=5, minor_radius=10)
>>> Ellipse(5, 10) is Ellipse(5, 10)
False
>>> Ellipse(5, 10) == Ellipse(5, 10)
True
property area: float
>>> Ellipse(5, 10).area
157.07963267948966
major_radius: float
minor_radius: float
property perimeter: float
>>> Ellipse(5, 10).perimeter
47.12388980384689
class geometry.geometry.Polygon

An abstract class which represents Polygon on a 2D surface.

>>> Polygon()
Polygon(sides=[])
>>> polygon = Polygon()
>>> polygon.add_side(Side(5)).get_side(0)
Side(length=5, angle=Angle(degrees=90), next_side=None)
>>> polygon.get_side(1)
Traceback (most recent call last):
    ...
IndexError: list index out of range
>>> polygon.set_side(0, Side(10)).get_side(0)
Side(length=10, angle=Angle(degrees=90), next_side=None)
>>> polygon.set_side(1, Side(10))
Traceback (most recent call last):
    ...
IndexError: list assignment index out of range
add_side(side: Side) Self
>>> Polygon().add_side(Side(5))
Polygon(sides=[Side(length=5, angle=Angle(degrees=90), next_side=None)])
get_side(index: int) Side
>>> Polygon().get_side(0)
Traceback (most recent call last):
    ...
IndexError: list index out of range
>>> Polygon().add_side(Side(5)).get_side(-1)
Side(length=5, angle=Angle(degrees=90), next_side=None)
set_side(index: int, side: Side) Self
>>> Polygon().set_side(0, Side(5))
Traceback (most recent call last):
    ...
IndexError: list assignment index out of range
>>> Polygon().add_side(Side(5)).set_side(0, Side(10))
Polygon(sides=[Side(length=10, angle=Angle(degrees=90), next_side=None)])
sides: list[Side] = []
class geometry.geometry.Rectangle(short_side_length: float, long_side_length: float)

Bases: Polygon

A geometric rectangle on a 2D surface.

>>> rectangle_one = Rectangle(5, 10)
>>> rectangle_one.perimeter()
30
>>> rectangle_one.area()
50
>>> Rectangle(-5, 10)
Traceback (most recent call last):
    ...
TypeError: length must be a positive numeric value.
area() float
perimeter() float
post_init() None
>>> Rectangle(5, 10)
Rectangle(sides=[Side(length=5, angle=Angle(degrees=90), next_side=None),
Side(length=10, angle=Angle(degrees=90), next_side=None)])
long_side_length
short_side_length
class geometry.geometry.Side

A side of a two dimensional Shape such as Polygon, etc. adjacent_sides: a list of sides which are adjacent to the current side angle: the angle in degrees between each adjacent side length: the length of the current side in meters

>>> Side(5)
Side(length=5, angle=Angle(degrees=90), next_side=None)
>>> Side(5, Angle(45.6))
Side(length=5, angle=Angle(degrees=45.6), next_side=None)
>>> Side(5, Angle(45.6), Side(1, Angle(2)))
Side(length=5, angle=Angle(degrees=45.6), next_side=Side(length=1, angle=Angle(d...
>>> Side(-1)
Traceback (most recent call last):
    ...
TypeError: length must be a positive numeric value.
>>> Side(5, None)
Traceback (most recent call last):
    ...
TypeError: angle must be an Angle object.
>>> Side(5, Angle(90), "Invalid next_side")
Traceback (most recent call last):
    ...
TypeError: next_side must be a Side or None.
__post_init__() None
angle: Angle
length: float
next_side: Side | None = None
class geometry.geometry.Square(side_length: float)

Bases: Rectangle

a structure which represents a geometrical square on a 2D surface >>> square_one = Square(5) >>> square_one.perimeter() 20 >>> square_one.area() 25

area() float
perimeter() float