Net of a Cylinder
Author: Edward M. Knote

h

r

Net

h

h

r

h

h

r

Formula

A = Point(xAxis)
r = 2 (slider from 1 to 2, step 0.1)
c = Circle(A, r)
B, C = Intersect(c, xAxis)
d: r / 11
D: (x(B) + d, y(B))
E: (x(C) - d, y(C))
e = Ellipse(E, D, C)
h = 5 (slider from 2 to 5, step 0.1)
F = Intersect(xAxis, yAxis)
G: (x(F), y(F) + 1)
u = Vector(F, G)
B'_1 = Translate(B, Vector[(u * h)])
C'_1 = Translate(C, Vector[(u * h)])
A' = Translate(A, Vector[(u * h)])
e'_1 = Translate(e, Vector[(u * h)])
poly1, b', b, c_1, c' = Polygon(B'_1, B, C, C'_1)
f = Arc(e'_1, C'_1, B'_1)
g = Arc(e, B, C)
k = Arc(e, C, B)
p_5 = Arc(e'_1, C'_1, B'_1)
q = Arc(e'_1, B'_1, C'_1)
s = Arc(e, B, C)
h_6 = Segment(A', A)
p = Segment(A', C'_1)
α = Angle(A, A', C'_1)
j = Line(A, A')
H, I = Intersect(e'_1, j)
J = Intersect(k, j)
t = Circle(I, r)
K = Intersect(t, j, 2)
d_1 = Circle(K, I)
e_1 = Circle(J, r)
L = Intersect(e_1, j, 1)
f_1 = Circle(L, J)
M = Intersect(f_1, j, 2)
N = Intersect(d_1, j, 2)
O = Intersect(s, j)
v = Vector(H, N)
w = Vector(O, M)
n = 0 (slider from 0 to 4, step 0.1)
H'_1 = Translate(H, Vector[(v * n)])
D' = Translate(D, Vector[(u * h)])
E' = Translate(E, Vector[(u * h)])
l = Line(B, B'_1)
m = Line(C, C'_1)
P = Intersect(d_1, l, 1)
Q = Intersect(d_1, m, 1)
z = Vector(B'_1, P)
u_1 = Vector(C'_1, Q)
B'' = Translate(B'_1, Vector[(z * n)])
C'' = Translate(C'_1, Vector[(u_1 * n)])
R = Midpoint(B'_1, A')
S = Midpoint(B, A)
a_1 = Line(R, S)
T = Intersect(q, a_1)
U = Intersect(d_1, a_1, 1)
v_1 = Vector(T, U)
T' = Translate(T, Vector[(v_1 * n)])
V = Intersect(f_1, l, 1)
W = Intersect(f_1, m, 1)
Z = Intersect(f_1, a_1, 2)
A_1 = Intersect(s, a_1)
w_1 = Vector(B, V)
z_1 = Vector(A_1, Z)
b_1 = Vector(C, W)
B' = Translate(B, Vector[(w_1 * (n - 1))])
C_1 = Translate(A_1, Vector[(z_1 * (n - 1))])
O' = Translate(O, Vector[(w * (n - 1))])
C' = Translate(C, Vector[(b_1 * (n - 1))])
B_1 = If(n  <  1, B'', P)
D_1 = If(n  <  1, T', U)
E_1 = If(n  <  1, H'_1, N)
F_1 = If(n  <  1, C'', Q)
g_1 = Conic(B_1, D_1, E_1, F_1, I)
h_1 = Conic(I, B_1, D_1, E_1, F_1)
G_1 = If(n  <  1, B, If[n  <  2, B', V])
H_1 = If(n  <  1, A_1, If[n  <  2, C_1, Z])
I_1 = If(n  <  1, O, If[n  <  2, O', M])
J_1 = If(n  <  1, C, If[n  <  2, C', W])
k_1 = Conic(G_1, H_1, I_1, J_1, J)
i_1 = Vector(H, O)
H' = Translate(H, Vector[(i_1 * (n - 2))])
K_1 = If(n  <  2, H, H')
j_1 = Segment(H, K_1)
q_1 = Arc(e, B, C)
M_1, N_1, R_1, S_1 = Intersect(g, k_1)
r_1 = Arc(k_1, M_1, N_1)
p_1 = Arc(k_1, N_1, M_1)
s_1 = Arc(e, C, B)
l_1 = OrthogonalLine(I, j)
m_1 = OrthogonalLine(J, l)
w_2: (r * 3.141592653589793)
t_1 = Circle(I, w_2)
L_1 = Intersect(t_1, l_1, 1)
O_1 = Intersect(t_1, l_1, 2)
n_1 = OrthogonalLine(O_1, l_1)
a_2 = OrthogonalLine(L_1, m_1)
P_1 = Intersect(m_1, n_1)
Q_1 = Intersect(m_1, a_2)
c_2 = Circle(H, r)
T_1 = Intersect(c_2, j, 2)
d_2 = Circle(T_1, H)
b_2 = OrthogonalLine(H, j)
U_1 = Intersect(d_2, l_1, 1)
e_2 = OrthogonalLine(T_1, j)
V_1 = Intersect(d_2, e_2, 1)
β = Angle(U_1, T_1, V_1)
w_3: ((90° - β) * (n - 3))
f_2 = Circle(L_1, r)
W_1 = Intersect(f_2, l_1, 2)
u_2 = Vector(I, W_1)
g_2 = Translate(d_2, Vector[(u_2 * (n - 3))])
Z_1 = Center(g_2)
A_2, B_3 = Intersect(g_2, b_2)
B_2 = Rotate(A_2, w_3, Z_1)
C_2 = If(n  <  3, H, B_2)
D_2 = Mirror(C_2, j)
E_2: (x(C_2), y(C_2) - h)
F_2 = Mirror(E_2, j)
G_2 = Midpoint(I, L_1)
H_2 = Intersect(m, l_1)
I_2 = Midpoint(H_2, C'_1)
v_2 = Vector(H_2, G_2)
w_4: (((n - 3) * 180))°
i_2 = OrthogonalLine(C'_1, m)
poly2, d_3, f_3, e_3, c_3 = Polygon(D_2, F_2, E_2, C_2)
z_2 = Vector(C'_1, W_1)
J_2 = Translate(C'_1, Vector[(z_2 * (n - 3))])
K_2 = If(n  <  3, C'_1, J_2)
L_2 = Mirror(K_2, j)
h_2 = Conic(D_2, L_2, I, K_2, C_2)
k_2 = Arc(h_2, B_2, D_2)
p_2 = Arc(h_2, B_2, D_2)
M_2: (x(K_2), y(K_2) - h)
N_2: (x(L_2), y(L_2) - h)
q_2 = Conic(F_2, N_2, J, M_2, E_2)
O_2, P_2, Q_2, R_2 = Intersect(q_2, k_1)
S_2 = Center(h_2)
T_2 = Center(q_2)
j_2 = OrthogonalLine(T_2, j)
m_2 = OrthogonalLine(S_2, j)
U_2, V_2 = Intersect(h_2, m_2)
W_2, Z_2 = Intersect(q_2, j_2)
poly3, u_3, d_4, f_4, w_5 = Polygon(U_2, D_2, F_2, W_2)
poly4, v_3, c_4, e_4, z_3 = Polygon(V_2, C_2, E_2, Z_2)
A_3 = Intersect(q_2, d_3, 2)
C_3 = Intersect(q_2, e_3, 2)
poly5, f_5, a_3, c_5, e_5 = Polygon(F_2, A_3, C_3, E_2)
s_2 = Arc(q_2, C_3, A_3)
t_2 = Arc(q_2, E_2, F_2)
g_3 = Arc(q_2, E_2, F_2)
l_2 = Segment(A_3, C_3)
D_3, E_3 = Intersect(k_1, l_2)
n_2 = Segment(E_3, A_3)
b_3 = Segment(D_3, C_3)
h_3 = Segment(F_2, E_2)
k_3 = Arc(k_1, D_3, E_3)
i_3 = Segment(E_3, D_3)
j_3 = Segment(D_2, C_2)
l_3 = Segment(L_2, K_2)
p_3 = Arc(q_2, W_2, F_2)
q_3 = Arc(q_2, E_2, Z_2)
r_3 = Arc(q_2, E_2, Z_2)
s_3 = Arc(q_2, W_2, F_2)
F_3, J_3 = Intersect(k_1, d_3)
G_3, K_3 = Intersect(k_1, e_3)
t_3 = Arc(k_1, G_3, F_3)
g_4 = Arc(k_1, F_3, R_2)
h_4 = Arc(k_1, O_2, G_3)
r_2 = Segment(F_2, E_2)
H_3, I_3 = Intersect(k_1, r_2)
m_3 = Segment(F_2, I_3)
n_3 = Segment(E_2, H_3)
k_4 = Arc(q_2, E_2, F_2)
p_4 = Arc(k_1, H_3, I_3)
a_4 = Segment(I_3, H_3)
b_4 = Segment(F_2, E_2)
i_4 = Segment(E_2, Z_2)
j_4 = Segment(D_2, F_2)
l_4 = Segment(C_2, E_2)
q_4 = Arc(k_1, N_1, M_1)
r_4 = Arc(k_1, N_1, M_1)
L_3 = Midpoint(j_4)
e' = Translate(e, Vector[(u * h)])
s_4 = Arc(k_1, M_1, N_1)
t_4 = Arc(k_1, R_2, N_1)
d_5 = Arc(k_1, R_2, O_2)
g_5 = Arc(k_1, P_2, Q_2)
M_3 = Center(h_1)
a = Segment(M_3, F_1)
N_3 = Midpoint(c_1)
O_3 = Point(xAxis)
h_5 = Circle(O_3, r)
P_3, Q_3 = Intersect(h_5, xAxis)
R_3: (x(P_3) + d, y(P_3))
S_3: (x(Q_3) - d, y(Q_3))
k_5 = Ellipse(R_3, S_3, Q_3)
i = OrthogonalLine(S_3, i_2)
m_4 = OrthogonalLine(Q_3, i_2)
n_4 = OrthogonalLine(P_3, i_2)
a_5 = OrthogonalLine(R_3, i_2)
T_3 = Intersect(i_2, a_5)
U_3 = Intersect(n_4, i_2)
V_3 = Intersect(i, i_2)
W_3 = Intersect(m_4, i_2)
q_5 = Ellipse(T_3, V_3, W_3)
poly6, u_4, w_6, q_6, p_6 = Polygon(U_3, W_3, Q_3, P_3)
r_5 = Ellipse(T_3, V_3, W_3)
s_5 = Arc(k_5, Q_3, P_3)
t_5 = Arc(k_5, P_3, Q_3)
Z_3 = Center(q_5)
b_5 = Segment(O_3, Z_3)
i_5 = Segment(Z_3, W_3)
γ = Angle(W_3, Z_3, O_3)
o = false
A_4 = Intersect(k_1, f_4)
B_4 = Intersect(k_1, e_4)
C_4, D_4, E_4, F_4 = Intersect(g_3, k_1)
poly7, b_6, z_4, c_6 = Polygon(Z_2, C_4, B_4)
poly8, w_7, f_6, a_6 = Polygon(F_4, A_4, W_2)
d_6 = Arc(q_2, W_2, F_4)
e_6 = Arc(q_2, C_4, Z_2)
g_6 = Arc(q_2, W_2, F_4)
k_6 = Arc(q_2, C_4, Z_2)
r_6 = Arc(k_1, G_3, J_3)
G_4, H_4 = Intersect(k_1, b)
j_5 = Segment(N_2, H_4)
l_5 = Segment(M_2, G_4)
m_5 = Segment(E_3, D_3)
n_5 = Segment(H_3, I_3)