Square Not Square
Author: John Golden
Date: 26 November 2013

Test these quadrilaterals.  They may be just disguising themselves as squares.  What is their most specific type?  (A name that always fits it no matter how the vertices are positioned.)

John Golden

A = (-2.3941055055468503, 0.4837519724570204)
B = (1.5411811164110256, 0.5008917225526555)
a = Line(B, A)
b = OrthogonalLine(A, a)
C = Point(b)
c = OrthogonalLine(C, b)
d = OrthogonalLine(B, c)
D = Intersect(c, d)
poly1, c_1, a_1, b_1, d_1 = Polygon(C, A, B, D)
E = (-2.376965755451214, -12.37448854928862)
F = (1.6920109172526168, -12.357348799192982)
e = Line(E, F)
f = Circle(E, F)
G = Point(f)
g = Circle(G, E)
h = Circle(F, E)
H = Intersect(g, h, 2)
poly7, e_1, f_1, h_1, g_1 = Polygon(E, F, H, G)
I = (13.754967034560764, 0.4426165722274952)
J = (9.675706511799559, 0.4083370720362245)
i = Line(I, J)
K = (17.727961106729047, 3.808863491010278)
j = OrthogonalLine(K, i)
L = (9.641427011608288, 4.521877094988707)
k = OrthogonalLine(L, j)
l = Line(J, L)
m = OrthogonalLine(K, l)
n = OrthogonalLine(I, m)
M = Intersect(k, n)
poly3, i_1, j_1, l_1, m_1 = Polygon(I, J, L, M)
N = (7.612080600285066, -5.796252462583771)
O = (3.765920678824494, -1.987799991333597)
p = Line(N, O)
P = (3.772776578862752, -5.820248112717661)
P' = Mirror(P, p)
poly5, o, p_1, n_1, p' = Polygon(O, P, N, P')
Q = (-2.342686255259945, -5.64542266174218)
R = (1.3149364151486393, -5.64542266174218)
q = Line(Q, R)
S = (-2.342686255259944, -1.9500925411231993)
r = Line(S, q)
T = Point(r)
poly4, q_1, s, t, r_1 = Polygon(Q, S, T, R)
U = (3.879043029455689, -12.168811548140992)
V = (7.612080600285066, -12.131104097930594)
k_1 = Line(U, V)
W = Midpoint(U, V)
s_1 = OrthogonalLine(W, k_1)
Z = (3.841335579245291, -8.398066527101218)
Z' = Mirror(Z, s_1)
poly8, u, z, z', v = Polygon(U, Z, Z', V)
A_1 = (13.381320482475923, -5.607715211531782)
B_1 = (9.761405262277739, -5.645422661742181)
t_1 = Line(A_1, B_1)
a_2 = OrthogonalLine(A_1, t_1)
C_1 = (9.685990361856941, -1.8746776407024037)
b_2 = OrthogonalLine(C_1, a_2)
D_1 = Intersect(a_2, b_2)
poly6, a_3, d_2, c_2, b_3 = Polygon(A_1, D_1, C_1, B_1)
E_1 = (7.574373150074668, 0.7648438740254399)
F_1 = (3.841335579245289, 0.6894289736046446)
G_1 = (3.8036281290348914, 4.535588895065216)
e_2 = Circle(E_1, F_1, G_1)
f_2 = AngularBisector(E_1, F_1, G_1)
H_1 = Intersect(e_2, f_2, 2)
g_2 = CircumcircleArc(G_1, H_1, E_1)
I_1 = Point(g_2)
poly2, e_3, f_3, g_3, i_2 = Polygon(E_1, F_1, G_1, I_1)
J_1 = (10.138479764381715, -12.206518998351392)
K_1 = (13.758394984579901, -12.168811548140994)
poly9, h_2, j_2, k_2, l_2, L_1, M_1 = Polygon(J_1, K_1, 4)