geometry.geometry¶
Classes¶
An Angle in degrees (unit of measurement) |
|
A geometric Circle on a 2D surface |
|
A geometric Ellipse on a 2D surface |
|
An abstract class which represents Polygon on a 2D surface. |
|
A geometric rectangle on a 2D surface. |
|
A side of a two dimensional Shape such as Polygon, etc. |
|
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)
- 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 ¶
- length: float¶