01
初衷概念
我去年曾送过一枚3D打印的爱心吊坠给我的妻子。如今我在想,今年我该送点什么给拙荆作为她的生日礼物呢?更精确一点的提法,我该造点什么来表达我的爱呢?
在我认知中,爱是相互的,相互作用的。一对爱人可以彼此感受,相互照顾,相互影响,相互成就。所谓"心有灵犀"、"心心相应" 都是这么个意思。总之,这件事应该是双向的,而不是单向的。
好吧,不装了。我承认对爱懂得不多,更别说如何去可视化一种相互的爱。但是,我确实知道物理学中有许多相互作用的现象。既然如此,我继续保持我"狼粉"的风格。
02
爱心造型
首先,我从 Wolfram Alpha 或 MathWorld 下载一个爱心曲线方程。First Heart Curve 献给 "第一夫人"。
将参数 a 设置成 17(单位: mm),这就是我将要做的首饰的尺寸了。
用ImplicitRegion 生成一个爱心区域,这个区域将作为后面首饰的边界造型。
03
波浪曲面
随后,我从 Wolfram Demonstrations 网页上把老沃的 wave interference 代码 (https://demonstrations.wolfram.com/WaveInterference/) 搬一下。
二源波干涉模型的图案正是我想要的,它们是如此的简单和优雅。
我小心翼翼地设置了一套波动参数(源位置、幅度、频率等),直至它们叠加的艺术效果所达我满意为止。
采用 ParametricPlot3D 和 RegionFucion 将波浪曲面和爱心形状复合起来可视化。就这样,一个波动的小池塘就完成了。
04
关键角色
我现在还缺男主角和女主角。鸳鸯是国人表达爱情的高频选择,正所谓"只羡鸳鸯不羡仙",这类的诗词在中国文学、诗歌、影视中比比皆是。其实鸳鸯是一种运动能力相当出色的鸟类,它们可以在陆上行,水中游,空中飞。然而,一只雄鸳和一只雌鸯它们在大概率情况下会相伴一生。这种情况其实在动物界是非常少见的,这也是为什么我们的古人选择鸳鸯来比喻忠贞爱情的原因吧。
鸳鸯属于雁形目鸭科,我记得之前在 Wolfram One-Liner Competition 2010 (https://blog.wolfram.com/2010/12/17/the-mathematica-one-liner-competition/) 中还有一只神奇的鸭子,所以我就从Paul Abbott那里借了一下。这只球坐标的小黄鸭是如此的可爱,它早已是Wolfram短代码扑克 (https://store.wolfram.com/view/misc/) 中的小鬼了。
随后,我稍微修改了一下代码,把第一参数的域值从 0 改为 0.1了,这样鸭子的嘴(喙)就看上去更像一点。
天哪!如果你有一颗数学的心,你就会和我一样惊叹这个图形。这是一只纯粹由数学生成的抽象鸭子的造型。尤其注意,它没有眼睛,就像莎士比亚所言,"Love is blind. "
05
有机合成
我将男主和女主放到正确的位置,并调整它们的姿态。它们看上去相互注视、相向而游,缓慢而又如此地坚定。
好了,男主和女主就位。
06
材质渲染
在一系列的区域操作后,STL模型已经生成,如下我们将基于STL模型进行渲染。
在 Mathematica 的老版本中,3D 图形的生成效果大致如下。
但是 Mathematica 12.3 以后可以采用 MaterialShading 这个新函数。所以我提升一下表面纹理效果使它更有金属质感。
好了,现在服装、镜头、灯光部署就位了。
07
成品展示
Action 开拍!如我之前所述,经过3D打印和失蜡法铸造后,我收到了我的爱心首饰。银是一种表现流体的理想材质,颜色、成形、质感、表面都有相似相通之处。波干涉的曲面图案非常清晰和闪耀,用"波光粼粼"来形容正是恰当。这对鸳鸯可以通过起伏的波浪彼此感受,即使他们是"瞎子"。
One more thing 另有一事值得一提,就是传统首饰和3D场景首饰的区别。一般传统首饰仅有一个视角比较好看,通常是正面视角。而3D场景首饰可以从所有的视角进行欣赏,每个视角都充满了浓浓爱意,每个视角都向您述说一段爱情故事。