用代码重现拓扑学手绘插图

A Topological Picture Book, Rendered

这是一个将经典拓扑学插图数字化的项目,旨在通过计算机图形学技术重现 Francis、Apéry 和 Hilbert–Cohn-Vossen 等大师的中世纪手绘风格。项目利用 JavaScript 和 GPU 渲染,将数学曲面转化为由笔触构成的线条画,而非传统的像素。技术细节包括基于主曲率线的排线(Hatching)、模拟毛笔的笔触宽度变化、以及处理隐藏线的虚线效果。通过 Bryant–Kusner 参数化和 Apéry 的笛卡尔族公式,项目实现了 Boy's surface 和 Morin surface 等复杂曲面的精确渲染。这种非真实感渲染(NPR)技术不仅保留了数学结构的严谨性,还赋予了数字模型独特的艺术质感,让抽象的拓扑概念变得直观且富有美感。

绘图是由笔触而非像素构成的,轮廓线是网格上 n·v 的零集,通过插值法线找到,从而连接成平滑曲线。
  1. e-infinityspace

    这是我的项目——感谢大家的关注。我刚刚优化了它在移动端和小尺寸设备上的体验。

    该应用主要基于 Hertzmann 和 Zorin 在 [这篇论文](https://cims.nyu.edu/gcl/papers/hertzmann2000iss.pdf) 中的思想,利用主曲率方向来确定排线方向。

  2. sevensor

    很多年前我还是 George 的本科生,看到这些渲染图真是令人欣喜。他以前会在任何能找到的表面上涂鸦——黑板、笔记本纸、餐巾纸,等等——而且经常用钢笔。他还非常热衷于用计算机做可视化,写过不少能在 CAVE 中运行的程序。

  3. sheept

    除了让侧边栏在小屏幕上可折叠外,如果能在 canvas 上添加 touch-action: none 就更好了,这样在触摸屏上旋转物体时就不会被误判为滚动操作。

    目前至少在 Android Chrome 上,拖拽旋转只能短暂生效,随后就会被中断。

同日更多故事

2026-09-08