球路实验室BILLIARDS / GEOMETRY LAB
拖动,让几何动起来
原理与模型 ↗

从一杆球,读懂一个角度

球碰在哪里,就往哪里走?

碰撞几何理想无旋转模型
准备击球

把参考图动起来 · 拖动假想球,直接改变切球角

放大图
↗

目标球沿两球球心的连线出发。白球的来球方向,和目标球的出球方向,是两条不同的线。

图形背后的数学

先看球心,再看接触点。

拖动球时,数值会实时更新
01 / 几何

接触点决定受力方向

同样大小的两个球相切时,球心距为 2r。接触点 M 位于球心连线中点,无摩擦碰撞的冲量沿这条线传递。

n = (O − G) / (2r)
M = (O + G) / 2

O:目标球心 G:碰撞瞬间白球心
n:目标球出球的单位方向

02 / 角度

半球为什么是 30°?

b 是目标球心到白球入射直线的有向垂直距离。相切球心构成直角三角形,所以:

sin φ = |b| / (2r)
f = 1 − |b| / (2r)

f 是沿来球方向看的直径重叠比例,并非球面接触面积。半球 f = ½,故 φ = 30°。

03 / 瞄准

让白球心到达假想球心

若希望目标球沿单位方向 n 走,就在它后方放一颗相切的“假想球”,让白球心沿 C → G 运动。

G = O − 2r n
u = (G − C) / ‖G − C‖

C:白球起点。目标球表面的接触点 M 和假想球心 G 相差一个半径,不能把 M 当成白球心的瞄准点。

完整推导、速度关系与模型边界+

从射线求第一次接触

令白球起点 C,目标球心 O,入射单位方向 u,垂直单位方向 u⊥ = (−uᵧ, uₓ)。记 d = O − C,a = d · u,b = d · u⊥。白球心沿 C + su 运动,首次相切满足 ‖C + su − O‖ = 2r,因此:

s = a − √((2r)² − b²),G = C + su

必须满足 |b| ≤ 2r、s ≥ 0、初始两球不重叠,且在接触前没有碰库。|b| = 2r 是擦边极限,法向冲量为零;不能把 90° 极限画成目标球实际获得速度。正碰时白球停住,其碰后方向不再定义。

相同质量、弹性、无摩擦碰撞

v′目标 = (v · n)n
v′白 = v − (v · n)n
|v′目标| / |v| = cos φ,|v′白| / |v| = sin φ

由动量守恒、动能守恒以及无切向冲量得到这组关系。两颗球都在运动时,碰后速度点积为零,即夹角 90°。这是无旋转模型中碰撞瞬间的关系;真实高杆、低杆和台呢摩擦会改变白球后续路线。

镜像法为什么成立

理想平直库边保持切向速度不变,反转法向速度。N 指向台面内部,反射公式为:

v出 = v入 − 2(v入 · N)N
α = arccos(−u入 · N)
β = arccos(u出 · N),α = β

把反弹后的线段关于反射线翻转,它与入射线段成为同一条直线。网页始终用球心在库边内侧 r 处的反射线计算,而不是把球当作没有半径的点。

这个模型能解释什么

球台为 1000 × 500 图示单位,球半径 r = 18;球相对球台作教学放大,两球及几何关系保持同一尺度。六个袋口以球心可达边界上的目标点 P 近似:角袋为 (r,r) 等,中袋为 (500,r) 等。图中袋口圆圈仅标示位置。

模拟忽略旋转、球间摩擦引起的碰撞偏移、台呢减速、库边压缩、袋角与袋口容差;库边开口附近的反弹会被判为不可用。动画按速度比例演示首碰和目标球的一次反射,白球在首次碰库后停止展示,后续两球再碰撞未建模。因此“瞄准成立”表示到达简化袋口目标,不是对真实球台进球的保证。

真实碰库若法向恢复系数为 e、切向保留系数为 k,在无旋转简化下 tan β = (k/e) tan α,只有 k = e 时才有等角。旋转还会改变切向速度,不能用一个固定“加几度”适配所有球台。

延伸阅读 / Dr. Dave Alciatore假想球瞄准 ↗镜像翻袋与解球 ↗