0

ポイントA、B、C

私がやろうとしているのは、2つのオブジェクト[AとB]を特定の位置に配置した場合、Cがどこにあるべきかをどのように見つけることができるかということです。速度は同じではありません。オブジェクトAの速度は30m/ s、オブジェクトBの速度は20 m/sです。

写真では、速度が同じであると描いています。しかし、それは私がやろうとしていることの一般的な考えをあなたに与えるはずです。

私はこれをいじっていますが、どこから始めればよいのかさえわかりません。

返信してくださった皆様、よろしくお願いいたします。

4

2 に答える 2

2

まず、時間tにおける各点のx位置を表す2つの方程式を記述します。

xpos_a(t) = original_xpos_a + xvelocity_a * t
xpos_b(t) = original_xpos_b + xvelocity_b * t

2つのポイントが衝突すると、それらのx位置は等しくなります。xpos_aをxpos_bに等しく設定し、tについて解きます。

original_xpos_a + xvelocity_a * t = original_xpos_b + xvelocity_b * t
xvelocity_a * t - xvelocity_b * t = original_xpos_b - original_xpos_a
t * (xvelocity_a - xvelocity_b) = original_xpos_b - original_xpos_a
t = (original_xpos_b - original_xpos_a) / (xvelocity_a - xvelocity_b)

tを解くと、次の3つの結果が考えられます。

  • 両方のポイントの元の位置と速度は同じです。t = 0/0; 衝突はいつでも発生する可能性があります。
  • ポイントの速度は同じですが、元の位置が異なります。t = [some nonzero number]/0; 衝突は発生しません。
  • ポイントの速度と元の位置は異なります。t = some real number。ポイントが衝突する場合、衝突はこの時点でのみ発生する可能性があります。

Y(および問題が3次元の場合はZ)に対してこれらの同じ手順を実行します。各次元のt値を比較します。考えられる結果は4つあります。

  • t値はいずれも「衝突は発生しません」です。衝突は発生しません。
  • 2つ以上のt値は、等しくない実数です。衝突は発生しません。
  • すべてのt値は、「衝突はいつでも発生する可能性がある」です。ポイントは、軌道上のすべてのポイントで常に衝突しています。
  • 実数であるt値はすべて互いに等しい。その時に衝突が発生します。(その時間が負の場合、シミュレーションを開始する前に衝突が発生します。これを「衝突は発生しない」とカウントする場合としない場合があります)

最終的なカテゴリに到達した場合は、衝突の時間を取り、それをxpos_a、ypos_a、zpos_a関数に接続して、衝突の空間座標を取得します。

于 2013-03-26T16:27:30.943 に答える
1

与えられた点AとB、およびベクトルC( Aの速度)とD(Bの速度)。

A = (x1, y1) >start point of A
B = (x2, y2) >start point of B
C = (q1, w1) >constant velocity of A
D = (q2, w2) >constant velocity of B

注:x1、y1、x2、y2、q1、q2、w1、w2はすべて定数です

編集:A&Cとb&Dが同一直線上にない場合は、作業に従ってください(Kevinが指摘しているように、衝突した場合は衝突の時間を見つけてください)

それらの線形化(適切な参照を見つけることができません)を実行します:

EQ1 => (x-x1)(w1/q1)=(y-y1) >> (x-x1)(w1/q1) + y1 = y <br>
EQ2 => (x-x2)(w2/q2)=(y-y2) >> (x-x2)(w2/q2) + y2 = y <br>

EQ1 => (w1/q1) * x + y1 - x1(w1/q1) = y
         m1    * x +(     b1      ) = y

EQ2 => (w2/q2) * x + y2 - x2(w2/q2) = y
         m2    * x +(     b2      ) = y

とのEQ1とEQ2をx解くy

x = (b2 - b1)/(m1 - m2)
y = m1 * x + b1    OR    m2 * x + b2

後で(x,y)参照^

t1またはを解決するt2

t1 = (x-x1) / q1
t2 = (x-x2) / q2

yt1とt2がsに対して真であるかどうかを確認します

t1 ?= (y-y1) / w1
t2 ?= (y-y2) / w2

それらが同じである場合、はい、それらは衝突します。(x,y)

注:すべてが事前に完全に計算されていない限り、丸め誤差のため、ほとんどの場合、何も衝突しません

于 2013-03-26T16:34:55.963 に答える