多面体万花筒:用 Taichi 展示数学之美

您好,欢迎访问我们的网站,我们将竭诚为您服务!

多面体万花筒:用 Taichi 展示数学之美

时间:2022-10-16 22:59:19 阅读:105
关注Taichi的小伙伴可能已经了解,Taichi是一种嵌入Python的强类型语言,并专门针对并行计算进行了优化,因此特别适合与Python协作来完成需要密集计算的任务,例如物理仿真和图形学渲染,甚至机器人定位中SLAM地图的构建。用Taichi可以做的事情是非常非常多的,今天,太极图形内部的一位小伙伴表示有话要说:Taichi语言还可以用于数学可视化的教学和科研当中!首先借助Python强大的抽象能力构建和计算数学对象,再利用Taichi同样强大的并行计算能力进行渲染和显示,整个过程无缝衔接,一气呵成!那他究竟用Taichi实现了怎样的数学可视化呢?

  作者介绍

  钛极侠(TiGeekMan),现任太极图形工程师,本科毕业于山东大学数学系,博士毕业于北大数院。热爱数学、图形学、Python。工作之余一大爱好是使用代码展示数学之美。未来期望用更多精彩的作品让大家爱上数学和Taichi。

  正文

  从一件艺术展品讲起

  对称性是数学中的一个重要概念,数学中有许多具有高度对称性的对象,它们兼具理论美和视觉美,万花筒就是其中之一。下面这个多面体万花筒作品来自一位美国艺术家Anthony James,请欣赏:

  多面体万花筒-by-Anthony-James

  (这个页面里有关于这位艺术家和他的作品的更多介绍,其中你可以看到他制作的许多不同形状的万花筒)

  作品的原理

  这个作品的原理其实是巧妙地利用了光路的反射:多面体的每个面都是一面镜子,并且镜子的内侧都铺上了一层反光膜,反光膜会把镜子内部的光线大部分都反射回内部。此外多面体每条边的内侧都安装了一个LED灯,这些LED灯发出的光线在多面体内部的镜子之间反复反射,每次反射会有一部分光线透出外壳,于是这些经历了不同次数反射的出射光线就在我们眼中呈现出了层层叠叠的万花筒图案。

  视频中的多面体叫做truncated icosidodecahedron,翻译过来是大斜方截半二十面体,它的面由正十边形,正六边形和正四边形组成。这个多面体可以通过正十二面体经过一些切割操作来得到,如下面视频所演示的:

  Wythoff-Explorer-Matt-Zucker

  (视频基于Matt Zucker的shadertoy项目制作)

  第一次我们削掉正十二面体的每个顶点,使得露出的三角形断面恰好相接触;第二次我们继续将第一步得到的所有顶点再削掉一次,并保持所有断面都是正多边形,就得到了大斜方截半二十面体。

  这种将几何和光学结合在一起的作品用来作为我们图形学课程的演示教具实在是再合适不过了。然而根据了解到的信息,这样一件实物艺术品的售价高达16万美元,这不禁让人流下了悲伤的泪水……

  DIY走起!

  但是所谓taichi在手,天下我有。虽然买不起实物,我们完全可以使用图形学中光线追踪的技术,用Taichi渲染一个和实物同样效果的作品。本钛极侠虽然本领不及钢铁侠,但折腾的劲头还是很足的。经过一番努力之后,成功还原出了上面视频中的多面体:taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!

上一篇:微米信息:银行理财产品风险级别是怎样划分的?

下一篇:Taichi(太极)发布 1.1.0 版本,计算机图形学编程语言

相关推荐

返回顶部