Net of a Square Pyramid
Author: Edward M. Knote

b

h

s

Net

l

s.h.

s

h

Formula

s

h

A = (-0.47547576270461633, 0.5143720128049213)
l = 4 (slider from 1 to 5, step 0.1)
B = Point(Circle[A, l])
a = Segment(A, B)
b_2 = Line(A, B)
c = Circle(B, 3.0 * l / 4.5)
C = Intersect(c, b_2, 2.0)
C' = Rotate(C, 30.0*°, B)
d = Line(C', b_2)
e = Segment(B, C')
f = Line(A, e)
D = Intersect(d, f)
poly1, a_1, b_1, c', d_1 = Polygon(A, B, C', D)
g = Segment(A, C')
h_1 = Segment(D, B)
E = Intersect(g, h_1)
i = OrthogonalLine(E, a_1)
h = 5 (slider from 3 to 6, step 0.1)
k = Circle(E, h)
F = Intersect(k, i, 2.0)
j = Segment(B, F)
l_5 = Segment(C', F)
m = Segment(F, D)
n = Segment(F, A)
p = Segment(E, F)
q = Segment(A, D)
G = Midpoint(b_1)
r = Segment(G, F)
α = Angle(G, E, F)
t = Segment(E, G)
c_1 = Line(E, G)
f_1 = Circle(G, F)
H = Intersect(f_1, c_1, 2.0)
I = Intersect(c_1, d_1)
g_1 = Circle(I, F)
J = Intersect(g_1, c_1, 1.0)
u = Vector(F, J)
L = Point(c')
q_1 = Circle(L, F)
w = Vector(F, H)
K = Midpoint(A, B)
e_1 = Line(K, E)
p_1 = Circle(K, h)
M = Intersect(e_1, c')
r_1 = Circle(M, h)
N = Intersect(r_1, e_1, 2.0)
O = Intersect(p_1, e_1, 1.0)
v = Vector(F, N)
z = Vector(F, O)
o = 0 (slider from 0 to 5, step 0.01)
F'_1 = Translate(F, Vector[z * o])
F'_2 = Translate(F, Vector[u * (o - 1.0)])
F'_3 = Translate(F, Vector[v * (o - 2.0)])
F' = Translate(F, Vector[w * (o - 3.0)])
s = Segment(F, N)
a_2 = LineBisector(s)
P = Intersect(a_2, c')
c_2 = CircleArc(P, N, F)
d_2 = Ray(P, F'_3)
Q = Intersect(c_2, d_2, 1.0)
e_2 = Segment(F, O)
f_2 = LineBisector(e_2)
R = Intersect(f_2, a_1)
g_2 = CircleArc(R, F, O)
h_2 = Ray(R, F'_1)
S = Intersect(g_2, h_2, 1.0)
k_2 = CircleArc(I, F, J)
p_2 = CircleArc(G, H, F)
i_2 = Ray(I, F'_2)
T = Intersect(k_2, i_2, 1.0)
j_2 = Ray(G, F')
U = Intersect(p_2, j_2, 1.0)
s_1 = Circle(I, E)
i_1 = OrthogonalLine(I, a_1)
V = Intersect(s_1, i_1, 2.0)
W = Intersect(s_1, i_1, 1.0)
j_1 = OrthogonalLine(V, i_1)
k_1 = OrthogonalLine(W, i_1)
l_1 = OrthogonalLine(G, k_1)
Z = Intersect(j_1, l_1)
A_1 = Intersect(k_1, l_1)
B_1 = Midpoint(V, Z)
C_1 = Midpoint(A_1, W)
t_1 = Circle(B_1, r)
q_2 = Circle(C_1, r)
m_1 = OrthogonalLine(B_1, k_1)
D_1 = Intersect(t_1, m_1, 1.0)
E_1 = Intersect(q_2, m_1, 2.0)
u_1 = Vector(C', Z)
v_1 = Vector(B, A_1)
w_1 = Vector(N, D_1)
z_1 = Vector(O, E_1)
N' = Translate(N, Vector[w_1 * (o - 4.0)])
O' = Translate(O, Vector[z_1 * (o - 4.0)])
B' = Translate(B, Vector[v_1 * (o - 4.0)])
A' = Translate(A, Vector[v_1 * (o - 4.0)])
C'' = Translate(C', Vector[u_1 * (o - 4.0)])
D' = Translate(D, Vector[u_1 * (o - 4.0)])
F_1 = If(o < 1.0, S, If[o < 4.0, O, If[o < 5.0, O', E_1]])
G_1 = If(o < 1.0, F, If[o < 2.0, T, J])
H_1 = If(o < 3.0, F, If[o < 4.0, U, H])
I_1 = If(o < 2.0, F, If[o < 3.0, Q, If[o < 4.0, N, If[o < 5.0, N', D_1]]])
J_1 = If(o < 4.0, A, If[o < 5.0, A', W])
K_1 = If(o < 4.0, B, If[o < 5.0, B', A_1])
L_1 = If(o < 4.0, C', If[o < 5.0, C'', Z])
M_1 = If(o < 4.0, D, If[o < 5.0, D', V])
poly2, k_3, f_3, j_3 = Polygon(F_1, J_1, K_1)
poly3, k_4, l_2, h_3 = Polygon(L_1, H_1, K_1)
poly4, m_2, l_3, i_3 = Polygon(L_1, I_1, M_1)
poly5, j_4, m_3, g_3 = Polygon(M_1, G_1, J_1)
N_1 = Intersect(m, j_3)
n_1 = Segment(I_1, N_1)
O_1 = Intersect(j_3, i_3)
Q_1 = Intersect(c', i_3)
R_1 = Intersect(c', i_3)
S_1 = Intersect(c', i_3)
U_1 = Intersect(c', i_3)
A_2 = Intersect(c', i_3)
B_2 = Intersect(l_2, i_3)
n_2 = Segment(B_2, O_1)
r_2 = Segment(B_2, M_1)
C_2 = Midpoint(M_1, L_1)
D_2 = Midpoint(L_1, K_1)
E_2 = Midpoint(K_1, J_1)
F_2 = Midpoint(J_1, M_1)
s_2 = Segment(G_1, F_2)
t_2 = Segment(C_2, I_1)
a_3 = Segment(D_2, H_1)
b_3 = Segment(E_2, F_1)
poly6, j_5, m_4, l_4, k_5 = Polygon(J_1, M_1, L_1, K_1)
P_1 = Intersect(j_3, d_1)
c_3 = Segment(P_1, M_1)
V_1 = Midpoint(p)
d_3 = OrthogonalLine(V_1, p)
W_1 = Point(d_3)
u_2 = Vector(W_1, V_1)
T_1 = Midpoint(r)
Z_1 = Midpoint(a_3)
G_2 = Point(a_2)
v_2 = Vector(G_2, T_1)
w_2 = Vector(G_2, Z_1)
o_1 = false
H_2 = (11.120310650039745, -5.135804169201089)
I_2 = Point(Circle[H_2, l])
e_3 = Segment(H_2, I_2)
b = Line(H_2, I_2)
p_3 = Circle(I_2, 3.0 * l / 4.5)
J_2 = Intersect(p_3, b, 2.0)
K_2 = Rotate(J_2, 30.0*°, I_2)
n_3 = Segment(I_2, K_2)
q_3 = Line(K_2, b)
r_3 = Line(H_2, n_3)
L_2 = Intersect(q_3, r_3)
s_3 = Segment(H_2, K_2)
t_3 = Segment(I_2, L_2)
M_2 = Intersect(s_3, t_3)
c_4 = Circle(M_2, h)
a_4 = OrthogonalLine(M_2, b)
N_2 = Intersect(c_4, a_4, 2.0)
poly7, i_4, h_4, n_4 = Polygon(H_2, N_2, I_2)
poly8, k_6, i_5, n_5 = Polygon(I_2, N_2, K_2)
poly9, h_5, l_6, k_7, i_6 = Polygon(H_2, L_2, K_2, I_2)
poly10, l_7, h_6, n_6 = Polygon(H_2, N_2, L_2)
poly11, k_8, l_8, n_7 = Polygon(L_2, N_2, K_2)
O_2 = Midpoint(k_7)
b_4 = Segment(M_2, O_2)
d_4 = Segment(M_2, N_2)
e_4 = Segment(N_2, O_2)
β = Angle(O_2, M_2, N_2)
P_2 = Midpoint(N_2, M_2)
Q_2 = Midpoint(O_2, N_2)
f_4 = Line(P_2, Q_2)
g_4 = Circle(P_2, l)
R_2 = Intersect(g_4, f_4, 1.0)
S_2 = Intersect(g_4, f_4, 2.0)
z_2 = Vector(R_2, P_2)
u_3 = Vector(S_2, Q_2)
T_2: G_2 + (1.0, 0.0)
V_2 = Midpoint(b_3)
W_2: V_2 + (1.0, 0.0)
Z_2: Z_1 + (-(0.5), 0.0)
U_2: Z_1 + (0.5, 0.0)
A_3: S_2 + (0.0, -(0.5))
B_3: A_3 + (1.0, 0.0)