
(典型的方块镇楼)
最近学矢量数学(还用矢量数学做了个 Pen 2d引擎【未完成】),突然发现矢量和成像有着非常有趣的关系。

(i 和 j 单位向量控制这个图像)

(改变 j 就把图像弄歪了)

(i 和 j 一起改变可以旋转图像)
( 点击看这个图像 --> desmos.com/calculator/ngpyd5r0qd )

(当时这个功能就是用这种方法做出来的)

@春暮竹园🌿 说这是 3d,虽然真的不是,但已经非常接近了。于是我这几天用一些零碎的时间做出了这个:desmos.com/calculator/gzsopvnbdl
只要再加上填充算法和裁线算法,一个 3D 引擎就成了!而且原理其实非常简单!

我们在红色平面上有点 (3,3),因为这个点是在红色平面上的。而这个平面是用 i 和 j 为单位向量一切在这个平面上的点都是按照 i(1,0) 和 j(0,1) 计算出位置的。比如这个橙色的点在主平面上的位置就可以被写成 3i + 3j ,因为 3*(1,0)+3*(0,1)=(3,3)(有趣的来了)
当 j 变成 (-1,1) 时,橙色点的绝对位置为 (0,3) ,因为
3*i+3*j
=3*(1,0)+3*(-1,1)
=(3,0)+(-3,3)
=(0,3)

再举例:
当 i 为 (1,1),j 为 (-1.5,0) 时,点的绝对位置为
3i+3j
=3*(-1.5,0)+3*(1,1)
=(-4.5,0)+(3,3)
=(-1.5,3)

而当 i 为(1,1) ,j 为(-1,1) 时,就完成了对平面以及点的旋转,因为i 和 j 的夹角始终呈现 90° 。

如果要拉长,就可以将 i 设为 (2,0),于是平面就被拉长,所有在平面上的点也被拉长。

还有就是 O 坐标,就是中心点。

改变 O 可以将平面平移。
3D 的原理也是这样。从平面到空间就只是多了个 k 矢量。具体算法我就不多说了,可以在下面讨论哦!
EDEN


X
