# Archy
This is a python package is created to facilitate calculations in the field of aerospace Mathematics Engineering in particular and mathematics geometry in general
As it can calculate the area of shapes and their perimeter with several types of input
[Archiy](https://pypi.org/project/Archiy/1.0.0/)
## shapes:
- **Point** : accept arguments : a , b represented the point coordinates in the orthogonal and homogeneous parameters
This class contain ` __init__`, `__repr__` and 'distance' methods, where the distance method take a point object as parameter to calculate the distance between the points.
Example :
```python
p1 = Point(1, 30)
p2 = Point(4, 80)
p1.distance(p2)
```
- **Square** : Square class have 2 types of declaration :
- init \* args:
height: height of the rectangle
width: width
- init \*\* kwargs:
points: a, b, c, d
This class contain ` __init__` and `__repr__` and other methods :
- perimetre() : this method calculate Square perimetre.
- surface() : this method calculate Square surface.
- diagonal() : this method calculate Square diagonal.
Example :
```python
from archy import Point, Square
p1 = Point(1, 30)
p2 = Point(4, 80)
p3 = Point(6, 20)
p4 = Point(8, 10)
### Square ###
S1 = Square(4)
S2 = Square(a=p1, b=p2, c=p3, d=p4)
print(f"Square Side > {S1} \n")
print(f"Square side Diagonal > {S1.diagonal()}\n")
print(f"Square side surface > {S1.surface()}\n")
print(f"Square side perimetre > {S1.perimetre()}\n")
```
- **Triangle** : Triangle class have 2 types of declaration :
- init \* args:
accept 3 params type(int) representing side1, side2, side3
example:
```python
T = Triangle(5, 2, 3)
```
<br/>
- init \*\* kwargs:
accept 3 params (a,b,c) type(Point) representing side1, side2, side3
example:
```python
from archiy import Point, Triangle
p1 = Point(1, 30)
p2 = Point(4, 80)
p3 = Point(6, 20)
T = Triangle(a=p1, b=p2, c=p3)
```
This class contain ` __init__` , `__repr__` and 'perimetre'.
The perimetre method allow to calculate the triangle perimeter :
```python
from archiy import Triangle
T = Triangle(1,2,10)
T1.perimetre()
```
- **Rectangle** : Rectangle class have 2 types of declaration :
- init \* args: accept 2 params : (height,width)
example:
```python
from archiy import
R = Rectangle(5,2)
```
- init \*\* kwargs: accept 4 params (a,b,c,d) type(Point)
example:
```python
from archiy import Point, Rectangle
p1 = Point(1, 30)
p2 = Point(4, 80)
p3 = Point(6, 20)
p4 = Point(8, 10)
### Rectangle ###
R = Rectangle(5, 5)
print(f"Rectangle > {R}")
print(f"Rectangle Surface > {R.surface()} \n")
```