0

レベルのどこかにあるターゲットと、動き回ってどこでも狙えるプレイヤーがいます。次に、プレイヤーの AIM と TARGET の間の距離を計算します。

プレイヤーはターゲットからどのくらい離れていますか? - この値が「0」に近い場合、プレイヤーがターゲットを狙っていることがわかります。これを知りたいのは、プレイヤーが発砲したときの距離を計算したいからです。

次の情報は私たちが持っているものです:

  • ターゲット ベクトル (X、Y、Z) の位置/座標。
  • プレーヤーのベクトル (X、Y、Z) の位置/座標。
  • プレーヤーのピッチとヨー。

状況図

4

1 に答える 1

0

そのため、空間内のターゲット ポイントと照準線の間の距離として距離を定義しました。プレイヤーとターゲットを結ぶ線と照準線の間の角度として距離を定義することもできることに注意してください。

幸いなことに、これは簡単です:

ここに画像の説明を入力

Target点 b は、の線 への足根前投影ですaim

t = Target - Player
i = max(a*t/a*a, 0) (so we won't report false distances when the target is behind)
B = Player + a * i
distance = dist(B, Target) = len(B - Target)

a次のような数式を使用して、ピッチとヨーからベクトルを計算できます。

a_x = cos(pitch) * cos(yaw)
a_y = sin(pitch)
a_z = cos(pitch) * sin(yaw)
于 2016-06-23T14:49:59.603 に答える