reoc/simu-lora/triangle.py
2025-02-04 23:36:01 +01:00

43 lines
989 B
Python

import math
def side(a, b):
return math.sqrt(math.pow(b[0]-a[0],2)+math.pow(b[1]-a[1],2))
def heron(a, b, c):
s=0.5*(a+b+c)
return math.sqrt(s*((s-a)*(s-b)*(s-c)))
def circle_triangle(a):
return math.asin(a/2)-((a/4)*math.sqrt(4-math.pow(a,2)))
A = (1,1)
B = (2.5,1)
C = (2,2)
## Using the algorithm provided in the document... find the intersections
A_intersec = (1.51,1.13)
B_intersec = (2,1)
C_intersec = (1.75,1.66)
## Calcul des longueurs via distance euclidienne
AB=side(A_intersec,B_intersec)
BC=side(B_intersec,C_intersec)
CA=side(C_intersec,A_intersec)
## Formule de Héron
triangle_area=heron(AB,BC,CA)
## Calcul des cercles autour des triangles
c_AB = circle_triangle(AB)
c_BC = circle_triangle(BC)
c_CA = circle_triangle(CA)
print(c_AB)
print(c_BC)
print(c_CA)
area = triangle_area + c_AB + c_BC + c_CA
print(f"Triangle area: {heron(side(A,B),side(B,C),side(C,A))}")
print(f"Intersection triangle area: {triangle_area}")
print(f"Total area: {area}")