- 107 名前:名前は開発中のものです。 mailto:sage [2009/09/15(火) 00:22:36 ID:6KSuCyNf]
- >>106 計算してみた。長文失礼します。
A, B, C, D の位置ベクトル → a, b, c, d 1, 2 の位置ベクトル → p1, p2 t = 0 で出発、t = 1で到達とすると、 p1 = a + (b - a)t = a + v1・t p2 = c + (d - c)t = c + v2・t と書ける p1-p2 間の距離を L とし、その最小値 min L を求める(実際には、min L^2 を求めればよい) L = abs(p1 - p2) = abs(a - c + (v1 - v2)t) ・・・ (1) [case 1] a - c = 0 min L = 0 (初期位置から衝突している) [case 2] v1 - v2 = 0 min L = abs(a - c) (2点間の距離が変化しない) [case 3] それ以外 式(1)は、L^2 = αt^2 + βt + γ と整理できる このとき、α > 0であるので、L^2は下に凸の2次関数である L^2が最小となる t = t0 は、t0 = -β/(2α) (1階微分がゼロ) であるが、 0 ≦ t ≦ 1 を考慮すると、 [case 3-1] t0 ≦ 0 min L^2 = γ (t = 0 地点が最も近く、徐々に離れる) [case 3-2] 1 ≦ t0 min L^2 = α+β+γ (徐々に近づき、t = 1 の最終位置が最も近い) [case 3-3] 0 < t0 < 1 min L^2 = - (β^2 - 4αγ) / (4α) (t = t0 の地点が L^2 の極小値)
|

|