FKMO 2010 P2 Geometry Python
FKMO 2010 P2 Geometry Python
pyplot as plt
from sympy import symbols, Eq, solve
import numpy as np
from matplotlib.patches import Circle
A = (0, 5)
B = (-4, 0)
C = (3, 0)
O = circumcenter(A, B, C)
H = orthocenter(A, B, C)
I = incenter(A, B, C)
D = midpoint(B, C)
F = midpoint(C, I)
E = line_intersection(O, D, A, H)
fig, ax = plt.subplots(figsize=(8, 8))
ax.plot([A[0], B[0]], [A[1], B[1]], 'k-')
ax.plot([B[0], C[0]], [B[1], C[1]], 'k-')
ax.plot([C[0], A[0]], [C[1], A[1]], 'k-')
ax.plot(*A, 'ro')
ax.plot(*B, 'bo')
ax.plot(*C, 'go')
ax.plot(*O, 'yo')
ax.plot(*H, 'co')
ax.plot(*I, 'mo')
ax.plot(*D, 'ko')
if E: ax.plot(*E, 'purple')
ax.plot(*F, 'brown')
ax.set_aspect('equal', adjustable='datalim')
ax.grid(True)
A = np.array(A)
B = np.array(B)
C = np.array(C)
I = np.array(I)
O = np.array(O)
incircle_radius = get_incircle_radius(A, B, C)
incircle = Circle((I[0], I[1]), incircle_radius, fill=False, linestyle='--',
color='green')
ax.add_patch(incircle)
circumcircle_radius = get_circumcircle_radius(A, B, C)
circumcircle = Circle((O[0], O[1]), circumcircle_radius, fill=False,
linestyle='--', color='blue')
ax.add_patch(circumcircle)
plt.show()