女士们,先生们,老少爷们儿们!在下张大少。
曲线缝合是一种数学艺术风格,在这种风格中,直线的包络形成了突现的曲线。几乎不费吹灰之力,曲线拼接就可以在计算机程序中实现,可以很容易地对参数进行操作。计算机程序的灵活性和力量揭示了本身就很有趣的色彩层次。本文讨论了一种算法,这种算法不是将曲线拼接图案呈现为线段的集合,而是呈现为密度图。这些密度图允许对颜色层次进行探索,并引入了一种新的方法来呈现曲线缝合图像的新方法。
基本曲线缝合
曲线缝合是玛丽·埃佛勒斯·布尔(Mary Everest Boole)在19世纪发明的,当时她拿着用来画画的卡片,不是在上面画画,而是用缝纫针在图案的边缘打孔,把线从小孔中抽出来,形成线条。她最终发现了一些模式,使相交的线能创造出 "由每条直丝线的一小部分组成的对称曲线" [1]。人们仍然在创造曲线缝合作品,作为数学教育课程的一部分,作为一种爱好,也作为艺术。这些作品的创作方法是玛丽·布尔的原始方法,以及手绘和计算机生成的图像。
图1:N=30,k=2。
图2:基础曲线缝合算法
曲线缝合的过程一般可以认为是沿着一套或多套路径定义了一组点P。然后用一个映射函数f (i)将每个点pi∈P映射到pf (i),其中pf (i)也∈P。然后,每一对点{pi, pf (i)}都作为一个线段的端点。当线段被画出来的时候,它们的包络线就会产生新的曲线和图案。在本文中,路径仅限于封闭的曲线,例如,圆、玫瑰曲线、环状线等等。
映射函数的常见定义是f(I)=(k∗i)mod N,其中N是P中的点的数量,k是一些整数值,如2,3,等等。使用这个定义,图1说明了N=30和k=2时圆的结果。在实现曲线缝合算法时,使用曲线的参数方程g(θ)很方便,它可以从角度θi计算出点pi。在这种情况下,f (i)被转化为f (θ) = k ∗ θ。改变参数方程的方法并不改变最终的图像,因此大多数程序实现了图2所示的基本曲线缝合算法的变体。
图3:使用基本算法时N和k的影响
当在计算机程序中实现时,基本算法能够快速和容易地操作N和k。它很容易使k的值(在手工制作曲线缝合工程时往往是低整数值)成为任意实数、整数或浮点数。图3说明了当基本算法应用于一个圆时可能出现的许多变化中的三个。
密度图
如图3(c)所示,随着基本算法给定的N值越来越高,整个图像中不同密度的线条开始导致颜色渐变。在线条交叉点较多且线段较近的区域,这些区域的整体颜色较深且较浓。在交叉点较少且线段相距较远的区域,这些区域的整体颜色较浅且不强烈。当我用基本算法逐步探索更复杂的图像时,我对颜色渐变的潜力更感兴趣,然后努力开发一种算法,强调渐变而不显示任何可见的线条。
图4:曲线缝合密度图算法
由此产生的曲线缝合密度图算法,如图4所示,是一种抽样算法。与基本算法不同的是,密度图算法从无限多的可能线段中计算出S条随机线段,以生成出现的曲线。从这些样本中,它选择一个随机点,其位置用于增加矩阵M中的密度计数。在生成所需数量的样本后,矩阵将包含代表最终图像中每个位置的线条密度的计数。
该算法的运行时间是线性的,并且取决于随机选择的线段数S。S值越低,图像越粗糙,而S值越高,渐变越平滑,但渲染时间越长。较大的图像需要比较小的图像更高的S值,才能产生等效的结果。本文中的图像最初是在MacBook Pro上创建的,分辨率为1200x1200dpi,S=400,000,000,渲染每个图像大约需要45秒。该算法很容易并行化,改进后的算法现在可以在15秒或更短的时间内渲染图像。
图5:算法比较。图(A)和(C)是用原始的曲线拼接算法创建的。图(B)和(D)是用新的密度绘图算法创建的。
图5比较了这两种算法的结果。即使是细线,基本算法的线段也是图像的一个可见部分,特别是在高分辨率下近距离观察时。在用密度图算法生成的图像中,仍然存在相同的出射曲线,但各个线段的所有痕迹都被颜色和梯度的平滑区域所取代。图6显示了使用密度图算法创建的其他示例渲染。如示例所示,该算法和一般的曲线拼接并不局限于仅从圆生成图像。这些示例说明了如果绘制了线段,结果将如何具有不那么明显的精致、纤细的纹理。这些图像也类似于光线在咖啡杯中产生的焦散[3]。
图6:非圆曲线的示例结果。
在前面的例子中,该算法作用于与一条曲线相关的点集,所有线段都开始和结束于同一条曲线。例如,图7(a)显示了呈现一个圆的结果。一个简单的扩展是连接两条独立曲线上的点。有了两条独立的曲线,我们现在可以调整这两条曲线的大小和位置,允许附加的变化。例如,两个独立圆的半径和中心点可以像图7(b)、7(c)和7(d)那样操作。
如示例所示,修改算法以支持两条相同类型的独立曲线会增加这种可能性。然而,很容易看出,该算法并不真正局限于渲染两条相同的曲线。附加修改可以渲染两种不同类型的曲线(例如,圆曲线和玫瑰曲线)的交互,只要这两条曲线都可以从基于θ的参数方程渲染即可。图8说明了两条不同曲线组合可能产生的一些可能性。
图7:一个圆和两个圆的大小和位置变化的比较。对于每个例子,k = 17/13。
图8:两条曲线的组合
总结与展望
很明显,密度图仍有未被探索的可能性。探索的领域包括使用更复杂或参数化的调色板、设置参数更改的动画,以及在3D中渲染密度图。其他可能性包括在单个图像中合并和分层两条以上的曲线。玛丽·布尔(Mary Boole)的曲线拼接能够创作出视觉上吸引人的作品。曲线拼接密度图创建了一种相似但不同的图像类型,具有相关的美学效果。一种方法侧重于线段,而另一种方法侧重于线段密度的影响。玛丽·布尔在100多年前就发现了这个简单的想法,但它仍有很大的探索空间。
参考文献
[1] M. E. Boole. The Preparation of the Child for Science. 1904. Clarendon Press. Available at https://archive.org/details/preparationofchi00boolrich. Last accessed 02/06/2019.
[2] S. Innes. “Mary Boole and curve stitching: a look into heaven.” Endeavour, vol. 28, no. 1, 2004, pp. 36–38.
[3] B. J. Loe and N. Beagley. “The Coffee Cup Caustic for Calculus Students.” The College Mathematics Journal, vol. 28, no. 4, 1997, pp. 277–284.
[4] John Nicholson, Curve Stitching Density Plots
青山不改,绿水长流,在下告退。
转发随意,转载请联系张大少本尊。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.