原谅我用了一个公众号风格的标题。
读过三体的朋友,可能还能回忆起,刘慈欣在死神永生中对四维空间碎片有这样的描述:
首次从四维空间看三维世界的人,首先领悟到一点:以前身处三维世界时,他其实根本没看见过自己的世界,如果把三维世界也比做一张画,他看到的只是那张画与他的脸平面垂直放置时的样子,看到的只是画的侧面,一条线;只有从四维看,画才对他平放了。他会这样描述:任何东內都不可能挡住它后面的东西,任何封闭体的内部也都是能看到的。这只是一个简单独规则,但如果世界真按这个规则呈现,视觉上是极其震撼的。当所有的遮档和封闭都不存在,一切都暴露在外时,目击者首先面对的是相当于三维世界中亿万倍的信息量,对于涌进视觉的海量信息,大脑一时无法把握。
...
这时.他们不得不面对一个全新的视觉现象:无限细节。在三维世界里,人类的视觉面对的是有限细节,一个环境或事物不管多么复杂,呈现的细节是有限的,只要用足够的时间依次观看,总能把绝大部分细节尽收眼底。但从四维看三维时,由于三维事物在各个层次上都暴露在四维视野中,原来封闭和被遮挡的一切都平行并列出来。比如一个封闭容器,首先可以看到它内部的物体,而这些内部物体的内部也是可见的,在这无穷层次的暴露并列中,便显露出无限的细节。在莫沃维奇和关一帆面前的飞船,虽然一切都显露在眼前,但任何一个小范围内的一件小东西,比如一只水杯或一支笔,它们并列出来的细节也是无限的,枧觉也接收到无限的信息,用眼睛看时,穷尽一生也不可能看全它们在四维空间的外形。当一个物体在所有层次上都暴露在四维时,便产生了一种令人眩晕的深度感,像一个无限嵌套的俄罗斯套娃,这时,“从果核中看到无穷”不再是一 个比喻。
看到这一段的时候,我想大家都会好奇,当我们真正的身处四维空间的时候,看到的景象是什么样子的?
很抱歉,没有人知道答案,因为没有人能够进入四维空间。但是我们可以把四维空间中的物体投影到三维空间中,然后看看它的投影的结果是什么样子的。
下图是一个例子:(注意:无限细节!!!)
上面这四个图其实绘制的都是四维空间中的一个正多面体 120-cell 的各种截断的变体,真正的 120-cell 长这样:
它是一个四维空间中的正多面体的意思是:它有 600 个顶点,1200 条边,720 个面,120 个胞腔,所有这些顶点,边,面,胞腔在四维空间中全都一样。
当然在上面的图中显示的结果是有的边 /面大,有的小,这是因为在投影到三维空间的过程中发生了形变。这没有办法,毕竟不存在从四维空间到三维空间的保距离的投影,任何投影都会导致形变。
这些图片都是由我刚刚完成的一个新项目生成的,代码在 github:
https://github.com/neozhaoliang/pywonderland
这个程序可以绘制的多面体很多,比如:
1.所有的柏拉图和阿基米德多面体:
2.各种三维和四维空间中的棱柱 /反棱柱:
昨晚主要是灵光一现,渲染了几个新图,觉得不错,所以拿上来臭美一下~,骗骗 star ~。
这个子项目是怎么来的呢?我最初受到了一个非常精彩的数学视频的启发:维度 (这个是简体中文的链接),我第一次看这个视频的时候还是 08/09 年那会,甚是羡慕,但是那时太菜,完全不了解里面的数学,也不知道人家是怎么渲染的。现在博士都毕业了,也有了一些编程经历,这才琢磨明白里面的道道,可以做出与之媲美的效果了。大家可以移步
http://pywonderland.com/polytopes/
那个网页上有我用这个程序制作的小视频。我相信效果是不会让大家失望的。
这个代码只有几百行,用纯 python 计算好坐标以后导出到 POV-Ray 渲染,只用到 numpy 这个库,sage/sympy/mathematica 统统不需要。你看,不需要什么高深的工具,纯 python + 一个渲染器就可以做出媲美 Devianart 级别的艺术作来,而且这个作品背后的数学也很奇妙:我这里是根据每个多面体对应的 Coxeter-Dynkin 图,算出其对称群,然后把这个群作用在任意一个初始顶点上得到整个多面体。这跟网上那些把多面体数据事先存在一个文件里面的方式是不同的。
数学很奇妙,数学和编程的交集不只有机器学习,纯数学在编程的世界中也可以很奇妙。希望大家喜欢 pywonderland 这个项目。
1
bwangel 2018-07-13 10:22:11 +08:00 via Android
666,老哥很厉害啊!
|
2
mathzhaoliang OP @bwangel 喜欢 + 花时间而已。
|
3
Devilker 2018-07-13 10:44:27 +08:00
想起区块链了
|
4
mathzhaoliang OP @Devilker 那里面的数学主要是椭圆曲线公钥密码学 + 哈希算法。椭圆曲线是数学里面非常优美深刻的分支。唯一的隐忧是:一旦真正实现了量子计算,椭圆曲线密码学就会被淘汰。
|
5
coffeSlider 2018-07-13 10:57:35 +08:00 via Android
有一个很像星战中的飞行器。
|
6
cskeleton 2018-07-13 11:01:02 +08:00
让我想起了《维度 数学漫步》和《混沌 数学探秘》
|
7
mathzhaoliang OP @cskeleton 就是受《维度》的启发写的。
|
8
mathzhaoliang OP @cskeleton 我写这个项目的时候发邮件问过《维度》的作者之一 Jos Leys,他说他就是用 POV-Ray 渲染的。但是怎么计算的不知道。
|
9
zhuanzh 2018-07-13 11:06:02 +08:00
https://www.bilibili.com/video/av20203833
推荐下木鱼的《维度 数学漫步》解说 |
10
fenx 2018-07-13 11:09:54 +08:00
|
11
mathzhaoliang OP @fenx 我不认为那些作品可以和我这个项目里的媲美~ 主要是那些作品只是简单的几何图形,并没有多少复杂的数学支撑。
|
12
mayne95 2018-07-13 11:23:18 +08:00
结构美,赞!
|
13
mathzhaoliang OP @mayne95 这只是开胃菜,后面还有更多更神奇的!
|
14
mayne95 2018-07-13 11:28:13 +08:00
@mathzhaoliang 期待,满眼星星.jpg
|
15
mathzhaoliang OP @mayne95 下一个项目是重现 Escher 的 circle limit:
![]( https://upload.wikimedia.org/wikipedia/en/5/55/Escher_Circle_Limit_III.jpg) 以及渲染 4 维空间中的双曲蜂巢: https://en.wikipedia.org/wiki/Uniform_honeycombs_in_hyperbolic_space 这个里面的数学比之前所有这些加起来还要难。 |
16
mayne95 2018-07-13 11:46:20 +08:00
@mathzhaoliang 感谢楼主的帖子和项目,顺藤摸瓜,发现了很多好玩的东西。Escher 的画真的很棒,GEB 还没看完,又来个维度,真幸福。
|
17
OfficialYoungX 2018-07-13 14:38:16 +08:00
[quanta magazine]( https://www.quantamagazine.org)了解一下?
|
18
mathzhaoliang OP @OfficialYoungX 好像是个科普网站?
|
19
darkcode 2018-07-15 17:16:52 +08:00
有意思,就是想到这些就害怕
|
20
hmzt 2018-07-17 13:51:33 +08:00
效果很赞,不过感觉刘慈欣对高维和低维空间的理解有问题,夏虫不可语冰,三维空间的我们是无法想象和模拟真实的四维的.
|
21
mathzhaoliang OP @hmzt 他的描述也不能说有问题,我们在三维空间中看物体无法看到全貌,是因为前面的物体会遮挡住后面的物体。但是如果把三维的物体放到四维中,将物体的 "深度信息" 作为第四个坐标,那就不存在遮挡了,所有的物体均一览无余。你如果知道计算机图形学里面的 depth buffer 和 distance field 的概念就很容易理解。
|
22
USNaWen 2018-07-19 16:19:55 +08:00
第 7,8 章的拓扑那边卡住了。。。纤维化真难懂
|
23
mathzhaoliang OP @USNaWen 也不是很难懂,数学专业的话理解起来好一些。
|
24
eluotao 2018-08-03 09:20:40 +08:00
很厉害 不得不承认....
|
25
sdijeenx 2018-08-03 15:38:54 +08:00
话说这些图片不是四维物体的平面投影么?(不使用 3D 显示器看的话
|
26
sdijeenx 2018-08-03 15:41:39 +08:00
p.s. 介绍这个视频的帖子最早我是在科幻世界论坛上看到的,距今已经 9 年了=3=
|
27
mathzhaoliang OP @sdijeenx 我还记得我初中每个月花5块钱买科幻世界小说杂志呢。那时候刘慈欣,阿来,王晋康的文章还经常能看到。
|
28
mathzhaoliang OP @sdijeenx 严格的说,是四维欧式空间中的正多面体 /一致多面体在三维欧式空间中的投影。
|
29
mathzhaoliang OP |
30
amorpaganini 2018-08-04 05:17:41 +08:00 via Android
有趣
|
31
wwg1994 2018-08-04 16:48:12 +08:00
瑟瑟发抖(((φ(◎ロ◎;)φ)))
|
32
mosbic 2018-08-06 09:11:29 +08:00 via Android
想看 Klein bottle
|