前几天在群里吹水的时候,我狂喷了2016年的一部冬季番《Dimension W》开头的某个画面:

因为这张图太侮辱我的智商了,把X轴反向延长就成了第四次元轴W?我无法接受这么神棍的设定。这个画面使得我对本作第一印象极差,看完第一话后又没有发现任何别的吸引我的地方,于是弃番了。
今天把线性代数作业写完以后,我又想起这件事,于是便琢磨起该怎样正确地在一张纸上画一个四维的笛卡尔坐标系。因为我从未去过四维空间,所以我的大脑是无法想象一个四维空间的,只能靠用笔计算了。方法并不难,就是在四维空间中找一个平面,然后把四个坐标轴都投影到这个平面上。
四维空间中沿着四条坐标轴的基矢量是:
⎩⎪⎪⎨⎪⎪⎧ex=(1,0,0,0)ey=(0,1,0,0)ez=(0,0,1,0)ew=(0,0,0,1)
选取两个矢量
{a=(1,1,0,1)b=(0,1,1,2)
所在的平面作为投影平面 m。
把 a 和 b 排成一个 4×2 的矩阵 A,
A=⎝⎜⎜⎛11010112⎠⎟⎟⎞
后面就是按部就班的计算了:
(ATA)−1A=31(2−110−1101)
所以现在就知道,投影到 m 上以后,ex 对应 31(2a−b),以此类推。
接着要把 m 还有投影后的方向矢量在图上画出来。首先计算 a 和 b 的模长与夹角:
∣∣a∣∣=√3, ∣∣b∣∣=√6
cos⟨a,b⟩=∣∣a∣∣∣∣b∣∣a⋅b=√21
那么我们就可以在平面 m 上建立一个新坐标系,并且把 a,b 分别取为 a=(√3,0), b=(√3,√3). 然后
(√30√3√3)(ATA)−1A=√31(1−1100111)
所以在新坐标系上,ex 的投影就是 √31(1,−1),以此类推。
最后画出来就是:

当然,到此为止我都只考虑了纯粹的数学投影,没有考虑人体视觉。比如,通常我们在纸上画一个三维坐标系时,一般都会把某两个坐标系画成互相垂直,第三条坐标系夹在之间。然而用上面的方法可以证明,是不可能找到这样一个投影平面的。但这并不影响我们觉得画出来的坐标系很有立体感。
所以说,你们动画制作者还要学习一个,探索 W 维度,那也要按照数学和物理的基本法啊,对不对?要按照线性代数的基本原则去作画,去生成…当然人体的视觉原理也是很重要的。阿虚有句名言,叫
フィクションにリアリティを求める奴のほうがどうかしていると思うが。
识得唔识得啊?