• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:物理シミュレータを自分で組んでいるのですが、物体の衝突判定のために物体)

物体の衝突判定における最小距離の求め方とディスタンスフィールドの構築方法

このQ&Aのポイント
  • 物理シミュレータの衝突判定には、物体周りのディスタンスフィールドを構築する必要があります。ディスタンスフィールドは、各格子点からオブジェクトまでの最小距離を表すものです。
  • 三次元空間において点から三角形までの最小距離を求める方法ですが、直線と三角形の交差判定と線分と直線の交差判定を組み合わせることで実装可能です。
  • ただし、より簡単な方法があるかどうかはわかりません。もし他に良い方法がある場合は教えていただきたいです。また、ディスタンスフィールドを構築する際にもっと良い方法がある場合は、ご教示いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

>三次元空間上のある点から、同じく三次元空間上の三角形までの最小距離 三角形の頂点の座標を(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)とするとこの三角形上の任意の点(xp,yp,zp)はパラメータt,sを用いて xp=(1-t)(1-s)x1+(1-s)tx2+sx3 (yp,zpも同様0≦t≦1,0≦s≦1) で表せます。 観測点(xo,yo,zo)と(xp,yp,zp)の距離hをピタゴラスで求め hをt,sで偏微分して=0としてt,sを確定しhの最小値を求めることができます。 実際の計算ではh^2について上記の操作を行えばよいでしょう。

mauhei
質問者

お礼

ありがとうございます!! >三角形の頂点の座標を(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)とするとこの三角形上の任意の点(xp,yp,zp)は>パラメータt,sを用いて >xp=(1-t)(1-s)x1+(1-s)tx2+sx3 >(yp,zpも同様0≦t≦1,0≦s≦1) >で表せます。 これは全然知りませんでした。数学的知識が不足していてお恥ずかしい限りです。 試してみます!

関連するQ&A