A = (0.74, 5.4)
B = (-2.78, 0.28)
C = (4.64, -0.36)
poly1, c, a, b = Polygon(A, B, C)
C' = Midpoint(A, B)
A' = Midpoint(B, C)
B' = Midpoint(C, A)
d = AngularBisector(B, A, C)
e = AngularBisector(A, B, C)
f = AngularBisector(B, C, A)
I = Intersect(f, d)
g = OrthogonalLine(A, d)
h = OrthogonalLine(B, e)
Jb = Intersect(g, e)
Jc = Intersect(h, f)
Ja = Intersect(h, d)
i = Line(A, B)
j = Line(A, C)
k = OrthogonalLine(C, i)
l = OrthogonalLine(B, j)
H = Intersect(k, l)
m = Line(H, A)
n = Line(B, C)
D = Intersect(m, n)
E = Intersect(l, j)
F = Intersect(k, i)
G: (A + B + C) / 3
B'' = Mirror(B', e)
A'' = Mirror(A', d)
p = Line(B, B'')
q = Line(A, A'')
L = Intersect(p, q)
J = Midpoint(A, D)
K = Midpoint(B, E)
M = Midpoint(C, F)
r = Circle(A, B, C)
O = Center(r)
s = OrthogonalLine(I, i)
N = Intersect(s, i)
t = Circle(I, N)
o = ImplicitCurve({A, B, C, A', B', C', Ja, Jb, Jc})