$\Large 正投影$

$\Large 平行于投影面$

线段

三角形

正方形

$\Large 中心投影$

$\Large 光源$

C: (1.5, 0, 3)
B: (0, -1.5, 3)
A: (-1.5, 0, 3)
a = 0 (slider from -1 to 1)
f: z = -1
D: C
l1: {A, B, C, D}
q1 = Polygon(l1)
α = 6.283185307179586 rad (slider from 270° to 6.283185307179586)
q1' = Rotate(q1, α, Segment[A, (-1, 2, 3)])
l1': {Vertex[q1']}
u = Vector((a, a, 2))
l2: l1' + u
l3 = Zip(Line[P, Q], P, l1', Q, l2)
l4 = Sequence(Intersect[Element[l3, k], f], k, 1, Length[l3])
l5 = Zip(Vector[P, Q], P, l1', Q, l4)
q2 = Polygon(l4)
b = 0 (slider from 0 to 1, step 1)
c = -0.1 (slider from -1 to 1)
v = Vector((c, c, 3))
I: (0, 0, 3) + v
l3' = Zip(Line[P, I], P, l1')
l4' = Sequence(Intersect[Element[l3', k], f], k, 1, Length[l3'])
l5' = Zip(Vector[I, Q], Q, l4')
q2' = Polygon(l4')
E = (-4.22, -1.896)
F = (-1.628, -1.896)
G = (-4.308, 2.304)
H = (-1.5488, 2.304)

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)