v2
v2 — 撞点 × 厚み → スロウ
的球を追加して衝突を 2D 化。撞点 (縦・横) × 厚み × 初速 で生まれる「スロウ (throw)」を、的球の理想ライン (点線) と実際の進路 (実線) の差として可視化。

この版で付けた機能
的玉を 1 個追加して衝突を 2D 化。「厚み (cut)」「撞点 縦/横」「球-球摩擦 μ」 スライダーを足し、スロウ (throw) を理想線と実際線の差で可視化した。
解説
- ●同じ撞点・同じ厚みのつもりでも的玉がまっすぐ出ない ── それがスロウ。
- ●スロウは「カット (薄く切る) で出るぶん」 と「横回転で出るぶん」 がある。
- ●点線 (理想) と実線 (実際) のズレを見ると、どれだけ振られたかが分かる。
- ●同質量剛体球の弾性衝突 + 接触点の球-球摩擦インパルスでスロウを計算。
- ●CIT (Cut-Induced Throw) と SIT (Spin-Induced Throw) を統合。接線インパルスは Coulomb 上限 μ·J_n と剛体上限 (1/7)|v_rel| の小さい方。
- ●※2026-09-22 に剛体上限を (2/7) から (1/7) に直した。(2/7) は相手が回らない「球と羅紗」「球とクッション」の値で、球どうしは両方が回るので (1/7) が正しい。直す前は厚く当てたとき (カット角が小さいとき) のスロウが最大 2 倍に出ていた (例: ストップショット・カット角 10° で 2.88° → 直した後 1.44°)。カット角 30° 以上は、摩擦が既定の 0.06 なら Coulomb 上限が効くので変わらない (摩擦のつまみを 0.083 より上げると 30° でも変わる)。
- ●idealObjectAngle = cut、actualObjectAngle = atan2(v_obj) で throwAngle を出す。摩擦ゼロで 90 度ルールが厳密成立。
- ●球-球摩擦 μ_bb ≈ 0.06 (Cross / Marlow)。
参考文献
- Marlow (1994) Ch.4
- Shepard "Amateur Physics for the Amateur Pool Player"
- Cross (Sydney) ball-ball friction