圓柱的截痕
Author: 藍邦偉  老師

座標軸

單位點

單位向量

h = 1.77 (slider from -7 to 7, step 0.01)
β = 5.152211951887261 rad (slider from 0*° to 6.283185307179586, step 0.0017453292519943296)
α = 2.303834612632515 rad (slider from 0*° to 6.283185307179586, step 0.0017453292519943296)
S = (-1.0199999999999998, 0.2)
M = (-3.96, 0.2)
n = Segment(M, S)
T = Point(n)
θ: (AffineRatio[M, S, T] * 360)°
r = 3.31 (slider from 0 to 7, step 0.01)
L = 6 (slider from 0 to 10, step 0.1)
O = (7.377522708912796, 0.872651342511306)
B = (-0.86, 5.180000000000001)
A = (-3.96, 5.180000000000001)
a_3 = Segment(A, B)
E = Point(a_3)
D = Point(a_3)
C_1 = Point(a_3)
w_2 = Vector(C_1, O)
D' = Rotate(D, 90*°, C_1)
u_2 = Vector(C_1, E)
E' = Rotate(E, 270*°, C_1)
v_2 = Vector(E', C_1)
B' = Rotate(B, 270*°, C_1)
A' = Rotate(A, 270*°, C_1)
a' = Segment(A', B')
c_2 = Circle(C_1, D)
R = Point(c_2)
c' = Translate(c_2, u_2)
Q_1 = Point(c')
j = Line(Q_1, a_3)
L_1 = Intersect(j, a')
L' = Rotate(L_1, Angle[D, C_1, R], C_1)
z_1 = Translate(L', w_2)
w = Vector(O, z_1)
F'_1 = Rotate(Q_1, 270*°, E)
g = Line(F'_1, a_3)
H_1 = Intersect(g, a')
c'' = Rotate(c', 270*°, C_1)
P_2 = Point(c'')
G'_1 = Translate(P_2, v_2)
h_2 = OrthogonalLine(G'_1, a_3)
I = Intersect(h_2, a_3)
K = Dilate(G'_1, AffineRatio[C_1, D', H_1], I)
K' = Rotate(K, Angle[D, C_1, R], C_1)
x_1 = Translate(K', w_2)
u = Vector(O, x_1)
G' = Rotate(P_2, 90*°, E')
G'' = Translate(G', v_2)
i = OrthogonalLine(G'', u_2)
J = Intersect(i, a_3)
G''' = Dilate(G'', AffineRatio[C_1, D', H_1], J)
N = Rotate(G''', Angle[D, C_1, R], C_1)
y_1 = Translate(N, w_2)
v = Vector(O, y_1)
b_3 = Segment(E, Q_1)
F' = Rotate(Q_1, 90*°, E)
d_3 = Segment(F'_1, F')
e = Segment(P_2, E')
f = Segment(G', E')
k = Segment(C_1, L')
l = Segment(C_1, K')
m = Segment(N, C_1)
p_1 = Segment(O, x_1)
q_1 = Segment(O, y_1)
r_1 = Segment(z_1, O)
C = Dilate(x_1, L, O)
F = Dilate(z_1, L, O)
G = Dilate(y_1, L, O)
C' = Mirror(C, O)
G'_2 = Mirror(G, O)
F'_2 = Mirror(F, O)
z = Vector(C', C)
s = Vector(G'_2, G)
t = Vector(F'_2, F)
o = false
a_1 = false
b_1 = false
a = CurveCartesian(x(O + r * cos(t) * u + r * sin(t) * v + L * w), y(O + r * cos(t) * u + r * sin(t) * v + L * w), t, 0, 6.283185307179586)
P: O + r * cos(θ) * u + r * sin(θ) * v + L * w
b = CurveCartesian(x(O + r * cos(t) * u + r * sin(t) * v - L * w), y(O + r * cos(t) * u + r * sin(t) * v - L * w), t, 0, 6.28)
U = Point(a)
V = Point(a)
W = Point(a)
Z = Point(a)
A_1 = Point(a)
c = Conic(U, V, W, Z, A_1)
q: sin(α) * cos(β)
r_2: sin(β)
p: cos(α) * cos(β)
H = Point(O, Vector[h * p * u + h * q * v + h * r_2 * w])
P_1: P + (h - r * cos(θ) * p - r * sin(θ) * q - L * r_2) * (p * u + q * v + r_2 * w)
G_1: H + cos(α + 3.141592653589793 / 2) * u + sin(α + 3.141592653589793 / 2) * v
I_1: H + cos(α) * cos(β + 3.141592653589793 / 2) * u + sin(α) * cos(β + 3.141592653589793 / 2) * v + sin(β + 3.141592653589793 / 2) * w
d = 5.89 (slider from r + 1 to 10, step 0.01)
u_1 = Vector(H, G_1)
v_1 = Vector(H, I_1)
J_1: H + d * u_1 + d * v_1
K_1: H + d * u_1 - d * v_1
M_1: H - d * u_1 + d * v_1
N_1: H - d * u_1 - d * v_1
poly1, j_1, k_1, n_1, m_1 = Polygon(J_1, K_1, N_1, M_1)
i_1 = Segment(F, F'_2)
Q: O + r * cos(θ) * u + r * sin(θ) * v - L * w
O_1: Q + (h - r * cos(θ) * p - r * sin(θ) * q + L * r_2) * (p * u + q * v + r_2 * w)
c_1 = Segment(P, Q)
d_1 = Line(P_1, O_1)
B_1 = Intersect(c_1, d_1)
loc1 = Locus(B_1, T)
w_1 = Vector(C_1, R)
D_1: F + r * w_1
E_1: F'_2 + r * w_1
F_1 = Mirror(D_1, F)
R_1 = Mirror(E_1, F'_2)
e_1 = Segment(D_1, E_1)
f_1 = Segment(R_1, F_1)