卢瑟福散射实验
时间: 2025-10-04 14:39:47
NuclearScatteringView 已经能把粒子发射、看到它被偏转的轨迹。
如果要更接近 卢瑟福散射实验,可以再加一个 散射角分布统计图:
📊 思路
记录轨迹
每个入射粒子(蓝球)在飞远以后(接近屏幕边界时),我们计算它的最终速度方向向量 v_final。
用它和初始方向向量 v_initial 算散射角:
$theta = \arccos \left( \frac{v_{\text{final}} \cdot v_{\text{initial}}}{|v_{\text{final}}| , |v_{\text{initial}}|} \right)$保存角度数据
在 Scene 里建一个 [CGFloat] 数组,记录每个粒子的散射角度。
用 SwiftUI 的 @Published / ObservableObject 绑定,把角度数据传回 SwiftUI。
绘制分布图
在 View 里加一个 Chart 或 Canvas,显示角度直方图(几乎所有 α 粒子小角度偏折,大角度少量 → 典型的 Rutherford 分布)。
⚡ 简化实现方式
Scene 每次粒子“飞出屏幕边界”时,计算散射角,存入数组。
View 用 SwiftUI Chart 显示一个简单直方图。
要不要我直接给你加一个版本:
左边是 SpriteKit 粒子散射
右边同步显示 散射角统计直方图
这样就能一边发射 α 粒子,一边看到统计规律。
要不要我写完整的 “带角度统计分布” 版本给你?
