Skip to content

jjling2011/Dimension4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

这是一个绘制 4 维及更高维几何体的在线网页。
在线演示网址:https://jjling2011.github.io/Dimension4/

cube4d.png

注意!这不是数学意义上的精确图案,玩玩就好。

网上的 4 维几何体通常以三维投影的形式演示,看得脑瓜疼。为什么用投影而不直接画出来呢?常见的说法是“我们生活在三维空间画不出四维”。然而屏幕以及我们的视网膜都是二维的,我们从来没有真正看过三维,但这并不影响我们理解三维。所以真正的问题是第 4 条坐标轴在哪里?下面是常见的三维坐标系:

xyz-squre.png

我们的思维习惯是 xyz 轴已经占居了所有位置,没地方放更多轴。其实不然。注意 y 轴和 x 轴是 45 度角并不垂直。所以 z 轴和 x 负半轴之间还有个空位。如果不限定 z 轴和 x 轴成 90 度角,那么还可以放入更多的轴。

uvwxyz.png

如果我们把坐标轴是直线这个条件也去掉呢?下面是把 xy 轴替换成 cos 曲线画出来的三维球体:

sphere-3d-cos-xy.gif

这是一个向量以特定方式沿高维球面旋转时的画出来的高维曲线,在二维平面里看着像一个波包: spinner-6d.png

一个向量同时在两个平面里旋转,其中一个旋转速度是另一个的 1/2 时,就得到一个莫比乌斯环: mobius-strip-3d.png

制作这个网页时的一些发现:

  1. 坐标轴不可以旋转,平面才可以旋转。比如旋转 x 轴,实际上是旋转和他对应的 yz 平面。
  2. 旋转一个平面,其实是重新分配构成平面的两个维度的数值。比如二维向量 (1, 0) 旋转 PI/2 其实就是重新分配成 (cos(PI/2), sin(PI/2))。注意省略了值为零的部分。
  3. 绘图时高维点到屏幕像素的映射关系,和坐标轴到屏幕像素的映射关系是等价的。

这些发现仅适用于这个项目。

几何体名字解释:

  1. 名字后面带 “2D”,“3D” 表示这个几何只使用了 2 个或者 3 个维度,其他维度的初始数值都是零。
  2. “球面螺旋曲线” 是一个单位向量沿着一条类似阿基米德渐开线的曲线在高维球面旋转时走过的轨迹。降低到 3 维,观察 xyz 坐标轴会更容易理解些。名字后面的 “X” 表示从 X 轴开始画,只画一条轨迹。“XY” 表示画两条轨迹。没带后缀的就是每个维度都画一次。(我也不知道为啥高维的图形看起来那么奇怪,但是我算过每个点到原点的距离都是 1。)
  3. “移动螺旋曲线” 是在绘制 “球面螺旋曲线” 的时候,加入 X 轴水平移动。因为 X 轴被占用,所以要减少一个维度。比如 4 维的 “移动螺旋曲线” 是 3 维的 “球面螺旋曲线” 在 X 轴移动的轨迹。

About

绘制 4 维及更高维几何体的在线网页。

Topics

Resources

License

Stars

Watchers

Forks

Contributors