解决方案

Mathematica 模拟20世纪初相当流行的闪烁镜的内部:一千个光点

Spinthariscope (闪烁镜) 是由 William Crookes 于 1903 年发明并命名的,它是一种观察单个原子的装置。或者至少可以看到单个原子的死亡。

Spinthariscope由一根针组成,类似于手表指针,位于硫化锌发光屏幕前,放大镜聚焦在屏幕上。在针的末端是一小块放射性物质。最初使用镭;最近发现钋、铀和镅更安全。

这是我收藏中特别有吸引力的黄铜模型:


尽管刻有日期,但它可能是20世纪20年代制造的。镜头在左侧,可以通过前后滑动镜筒的两个部分来对焦。

当您看着镜头时,您会在硫化锌屏幕上看到数千道闪光。每道闪光都来自单个镭原子的放射性衰变。它通常被描述为一片光海,在当时是一项重大的科学发现。以前从未有可能一次一个地明确地观察单个原子的影响。

看着旋转镜是一种奇妙的体验,但也有一些缺点。首先,它们具有放射性,而且您的眼睛离得非常近。像上图这样的古董旋转镜可能会非常“热”。这个内部和外部都被强放射性尘埃污染,这是一种从针头上剥落的镭涂料和从源头散发出来并在桶内积累了近一百年的镭衰变产物的组合。现代铀矿石或基于镅按钮的旋转镜没有危险的放射性,而且放射源密封良好,但仍然如此。

另一个问题是闪光处于人类视觉敏感度的极低端。您必须在漆黑的房间里坐上十分钟,您的眼睛才能变得足够敏感才能看到它们。(虽然这可能不方便随意观看,但据传这是维多利亚时代后期这些设备在某些圈子中流行的因素之一。如果您带它去参加一个高档的晚宴,您就有借口邀请女士们来和您一起坐在一个黑暗的房间里,至少十分钟。在那个连钢琴腿都被遮住以示端庄优雅的时代,这是一件非常热门的事情。图片)

无论如何,当我为我的大众科学专栏写一篇关于 spinthariscopes 的文章时,我需要一种方法来打印出 spinthariscope 内部的样子。拍摄人眼几乎看不到的短暂闪光是非常困难的。普通的相机都做不到,即使是市售的夜视镜也不够好。

虽然使用高度专业化的设备可能是可行的,但我认为创建科学准确的模拟将是为我的专栏创建图像的更好选择。不用说,我使用Mathematica来创建模拟。

下面是用Mathematica中的Graphics3D函数绘制的情况图:


来自放射源的阿尔法粒子以随机方向发射。那些击中屏幕的阿尔法粒子会导致闪光。这段代码给出了这样一个粒子的坐标。


这是表面上方 0.15 个单位发出的一千次闪光的样子:


这在数学上很好,但看起来一点也不像真正的旋转镜。因此,通过一些简单的调整,我使黑色背景上的点变亮:


为什么是这个颜色?这是我对硫化锌夜光屏颜色的主观印象。我发誓这是我记得在真实的旋转镜中看到的,直到有人指出,当然,在那些昏暗的光线下,您根本看不到颜色。事实上,spinthariscope 视图(就像所有非常暗淡的现象一样)看起来是黑白分明的。但这就是硫化锌屏幕的颜色,当它被足够强的放射源点燃时,它会发出明亮的光芒,而不是仅仅发出分散的单个闪光(这就是古老的镭表针的工作原理)。我决定坚持使用这种颜色,尽管它更像是心理上的而不是真实的。

下一个改进是考虑到发光屏幕通常是圆形的:任何撞击到圆形区域外的 alpha 粒子都将不可见。这是通过仅选择距离中心一定距离内的那些点来模拟的。

然后,我们在这些光点上添加手表的轮廓。我想要一个漂亮的手表指针,所以我做的第一件事就是创建一个设计手表指针的小工具:


该演示(https://demonstrations.wolfram.com/SymmetricalSplineCurves/)可让您在蓝色控制点周围拖动以重塑手表指针,同时提供不断更新的线条镜面反射,这对于判断手表指针的外观必不可少。

也许在 Adobe Illustrator 中有一种方法可以做到这一点,但我肯定不知道怎么做。(当然,您可以绘制样条曲线,但是您可以实时更新镜像吗?否则,您将花费数小时摆弄正确。)

Manipulate的“粘贴快照”功能可用于提取指针,稍加处理即可将其变成定义指针的平面坐标列表。

现在我们拥有了组装交互式 spinthariscope 模拟器所需的所有元素,它允许您将指针横过屏幕横向移动(就像您可以在我的实际古董 spinthariscope 中使用小拇指轮一样),离屏幕也很近或很远(您不能用真正的来做)。我甚至添加了一个选项,使闪烁连续,所以当您移动指针时它不会只是闪烁。(想一想:几乎一百年来,无论是否有人看它,我体内的那颗镭微小斑点每秒都在发出数千道闪光。它现在正坐在我的架子上静静地闪烁着自己,而且在镭衰减到每秒只有几次闪光的程度之前,它将继续闪烁一万年。)


可以在这里(https://demonstrations.wolfram.com/Spinthariscope/)下载包含所有控件和源代码的完整实时演示。

所以,您有了它 —— 一个很好的,功能齐全的旋转镜模拟。

在这些情况下,90% 的复杂性来自最后 10% 的润色。手表指针的轮廓需要的代码是模拟其余部分加在一起的代码的好几倍。这就是“真实”示例看起来比旨在展示特定功能的案例研究更长、更复杂的原因之一。

为了比较,这里是一个完全独立的 spinthariscope 模拟版本,展示了 Mathematica 代码的紧凑和高效: