来源:英国那些事儿
Ben是一名斯坦福大学的物理学博士生。

他有一个相处了8年的男票。
两人在大一那年相识,之后感情一直很好。
最近,Ben想跟男票求婚了。
但是单膝下跪,烛光晚餐啥的求婚仪式,他感觉不够特别。
他要求婚,就要用全世界都没人用过的方式。
因为平时是研究光子学的,于是Ben就想:能不能让光来帮我求婚呢?
他思索了好一阵子,终于想出了一个方案。
他要让落日来帮他说出这几个字。

具体做法就是通过镜子反射。
他买来169片小镜片。每一个镜片负责一个光点。
拼在一起,刚好是:嫁给我?

为了能达到这个效果。
首先,他要计算出一个镜片的折射公式。要射到一个目标点,它需要什么角度。

然后以此类推到其他100多个镜片上。
然后,他买来一台3D打印机。
生成一个六角柱的模型。
算好顶部平面的倾斜位置,以及整个六角柱的大小。

还要给顶部留出放镜片的空间。

有了生成一个六角柱和镜片放置器的代码后,
Ben生成了一个六角柱网格模型。

在整个制作过程中,Ben遇到了各种各样的难题。
其中一个问题就是,当反射光线存在交叉情况时,镜面位置稍微一偏移,就容易出现乱码。

为了增加容错率,Ben还特别又搞了公式,让所有反射的光线都能尽量平行。

按照他计算的结果,安排好每个镜片的位置,

把光线反射从左图这种充满交叉调整到右图。

一切都解决好后,Ben把镜片的框架3D打印出来。

然后把小镜片一片一片黏到上面。
最后成品:

11月8日那天,
Ben带着男友来到加州Pfeiffer海滩。
就在日落前,
他把镜子递给男友。

镜子在日落的光线下,在沙滩上反射出两行字:MARRY ME?

面对这个意想不到的惊喜,Alax的回答是:YES!

落日,大海,沙滩,戒指,温柔的光线反射。
虽然两人都是理工技术男,但整个过程可以说是浪漫到极致了。

用完后,这面镜子还能挂在墙上当爱情的见证。

为了让更多人能感受到这种技术的浪漫,
Ben开源了这个项目的所有代码。

稍微修改一下就可以投射不同的图像。
有兴趣可以去看看~