项目地址在这里: https://github.com/neozhaoliang/pywonderland 项目的主旨是用代码展示数学之美。
最近在折腾一个新程序,渲染三维双曲空间的铺砌。这个项目非常复杂,不但涉及到的数学非常难,而且渲染步骤也比较费时。但是得到的效果异常惊人:
这里面每一个图像对应三维单位球的一个均匀铺砌。在欧式空间里面三维单位球是一个半径为 1 的体积有限的球,但是我们可以把这个球里面的度量换成庞加莱双曲度量,在这个度量下这个空间是无限大的,所以可以塞进去无限多个 "胞腔"。对正则铺砌来说,其中的胞腔看起来离得越远就越小,实际上它们在双曲空间里面都是一样大的。
二维的情形也许更好理解一点:
这是一个二维的单位圆盘,在庞加莱度量下它也是无限大的一个空间,可以塞进去无限多个多边形。那些靠近单位元边界的多边形虽然看起来小,但是实际上可不小,它们跟位于圆盘中心的多边形是一样大的。
上面的三维图像都是在 Python 里面计算好然后输出到 POV-Ray 渲染得到的。我在公司的办公室里面有一台 16G 内存的台式机,我一般是下班以后运行 Python 的部分先生成场景数据,大约耗费十分钟左右,然后开启 POV-Ray 渲染进程,这个一般耗时两小时左右,所以我都是第二天早上过来查看结果。
二维的图像则一律是直接输出到 SVG 格式。
如果你想看看 pywonderland 这个项目能做什么,欢迎访问图集
https://mathzhaoliang.imgur.com/all
(虽然项目已经维护几年了,star 也攒了不少,还是希望年前能过 3700 star 大关)
1
misaka19000 2020-01-17 15:52:17 +08:00 1
楼主厉害了!!!
|
2
JCZ2MkKb5S8ZX9pq 2020-01-17 20:01:47 +08:00
imgur
You've taken a wrong turn. |
3
jjshare 2020-01-18 14:04:04 +08:00
这结构,装上玻璃,装修一下,感觉就是一间间共享空间啊
|
4
FourAndHalf 2020-01-20 12:25:12 +08:00 1
这才是真大佬,已经关注 star fork
|
5
VVincent 2020-01-20 14:32:23 +08:00 1
哇有点酷!
|
6
mathzhaoliang OP @FourAndHalf 希望能提 issue 或者 pr!
|