A: (0, 0, 0)
B: (2, 0, 0)
C = Point(Circle[B, Distance[A, B], Segment[A, B]])
a, D, E, F, G, H, faceABCD, faceADHE, faceABFE, faceBCGF, faceCDHG, faceEFGH, edgeAD, edgeAB, edgeBC, edgeCD, edgeAE, edgeDH, edgeEH, edgeEF, edgeBF, edgeFG, edgeCG, edgeGH = Cube(A, B, C)
α = 0.8028514559173916 rad (slider from 0 to 90°)
a' = Rotate(a, α, zAxis)
l1: {A, B, C, D, E, F, G, H}
l1' = Rotate(l1, α, zAxis)
b = Max(y(l1'))
l2 = KeepIf(y(Q) < b, Q, l1')
u = Vector(B, C)
p = Plane(y = 10)
l3 = Sequence(Line[Element[l2, k], u], k, 1, Length[l2])
l4 = Sequence(Intersect[Element[l3, k], p], k, 1, Length[l3])
l5 = Zip(Vector[P, Q], P, l2, Q, l4)
q2 = If(0° < α < 90°, Polygon[Element[l4, 3], Element[l4, 2], Element[l4, 5], Element[l4, 6]])
q1 = If(α ≟ 0° ∨ α ≟ 90°, Polygon[Element[l4, 1], Element[l4, 2], Element[l4, 4], Element[l4, 3]])
f = If(0° < α < 90°, Segment[Element[l4, 1], Element[l4, 4]])
I = (-4.14, 3.426)
J = (-0.612, 3.426)
K = (-3.9, 7.286)
L = (-0.672, 7.286)

Tool: 坐标系
x最小、最大，y最小、最大，0.23
Input: m, n, q, p, a
Output: A, B, O, l1, l2, list3, list4, list5, list6, u, v

$\huge\textcolor{}{x}$

$\huge\textcolor{}{y}$

$\Large{O}$

u = Vector((m - 1, 0), (n + 1, 0))
l1 = Sequence(Segment[(k, 0), (k, a)], k, m, n)
A: (n + 1, 0)
list4 = Sequence(Text[k, Element[Sequence[(t - 0.15, 0), t, 1, n], k], true, true], k, 1, n)
list3 = Sequence(Text[k, Element[Sequence[(t - 0.5, 0), t, m, -1], k + abs(m) + 1], true, true], k, m, -1)
l2 = Sequence(Segment[(0, k), (a, k)], k, q, p)
list5 = Sequence(Text[k, Element[Sequence[(-0.9, t + 0.2), t, q, -1], k + abs(q) + 1], true, true], k, q, -1)
v = Vector((0, q - 1), (0, p + 1))
B: (0, p + 1)
list6 = Sequence(Text[k, Element[Sequence[(-0.6, t + 0.2), t, 1, p], k], true, true], k, 1, p)
O: B - (0, p + 1)