演示

a, c, d, b = Cylinder((-1, 0, 0), (-1, 0, 4), 1)
k = 0 (slider from 0 to 1, step 0.001)
r: 1 / k
f = If(k ≟ 0, Surface[0, u, v, u, 0, (2 * π), v, 0, 4], Surface[(r * (-1 + cos((k * θ)))), (r * sin((k * θ))), h, θ, 0, (2 * π), h, 0, 4])
g = Circle((-1, 0, 0), 1, xOyPlane)
α = 1.5707963267948966 rad (slider from 0 to 90°)
g' = Rotate(g, (-α), yAxis)
h = Circle((-1, 0, 4), 1, xOyPlane)
h' = Rotate(h, α, Translate[yAxis, Vector[(0, 0, 0), (0, 0, 4)]])
e = If(k ≟ 0, Surface[0, u, v, u, (-π), π, v, 0, 4], Surface[(r * (-1 + cos((k * θ)))), (r * sin((k * θ))), h, θ, (-π), π, h, 0, 4])

Tool: 简易坐标系
请选择原点，分别输入：x最小、最大值，y最小、最大值
Input: A, a, b, c, d
Output: B, C, O, u, v

$\huge\textcolor{}{x}$

$\huge\textcolor{}{y}$

$\Large\textcolor{}{O}$

A: (0, 0)
u = Vector(A + (a - 1, 0), A + (b + 1, 0))
v = Vector(A + (0, c - 1), A + (0, d + 1))
B: A + (b + 1, 0)
C: A + (0, d + 1)
O: A

Tool: 坐标系
请输入：x轴最小值/π,x轴最大值/π,y轴最大值
Input: m, n, p
Output: A, B, l1, l2, l3, l4, l5, l6, u, v

$\huge\textcolor{}{x}$

$\huge\textcolor{}{y}$

u = Vector(((m * π) - 1, 0), ((n * π) + 1, 0))
v = Vector((0, (-p) - 1), (0, p + 1))
A: ((n * π) + 1, 0)
B: (0, p + 1)
l1 = Sequence(Segment[(k, 0), (k, 0.1)], k, (m * π), (n * π), π / 2)
l2 = Sequence(Segment[(0, k), (0.1, k)], k, (-p), p, 1)
l3 = Sequence(Text[If[k ≟ -1, "- π ", "-" + (FractionText[abs(k)]) + " π "], (-0.57, -0.17) + ((k * π), 0), true, true], k, m, -1 / 2, 1 / 2)
l4 = Sequence(Text[If[k ≟ 0, "O", k ≟ 1, " π ", k ≟ -1, "- π ", FractionText[k] + " π "], (0, -0.08) + ((k * π), 0), true, true], k, 0, n, 1 / 2)
l5 = Sequence(Text[k, (-0.66, 0.17) + (0, k), true, true], k, (-p), -1, 1)
l6 = Sequence(Text[k, (-0.34, 0.22) + (0, k), true, true], k, 1, p, 1)

Tool: 直角坐标系
请输入：x轴最小、最大值，y轴最小、最大值
Input: m, n, p, q
Output: A, B, O, l1, l2, l3, l4, l5, l6, u, v

$\huge\textcolor{}{x}$

$\huge\textcolor{}{y}$

$\Large{O}$

u = Vector((m - 1, 0), (n + 1, 0))
v = Vector((0, p - 1), (0, q + 1))
A: (n + 1, 0)
B: (0, q + 1)
O: B - (0, q + 1)
l1 = Sequence(Segment[(k, 0), (k, 0.23)], k, m, n)
l2 = Sequence(Segment[(0, k), (0.23, k)], k, p, q)
l3 = Sequence(Text[k, (-0.4, -0.05) + (k, 0), true, true], k, m, -1)
l4 = Sequence(Text[k, (-0.13, -0.04) + (k, 0), true, true], k, 1, n)
l6 = Sequence(Text[k, (-0.35, 0.16) + (0, k), true, true], k, 1, q)
l5 = Sequence(Text[k, (-0.59, 0.18) + (0, k), true, true], k, p, -1)