43 lines
989 B
Python
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}")
|