コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
こういち ◆ou0jbJnEJ0Kb
2018/11/25 21:27
情報交換
多面体と球の当たり判定
タイトルの通り。
(へこみのない)多面体と球の当たり判定のやり方を知りたいです。
(へこみのない)多面体と点の当たり判定や多角形と円の当たり判定は分かります。

コメント

アバター
SatoshiMcCloud 2018/11/26 6:19 ◆Z1qfV11i63Jr
(いま自分で考えた方法)

多面体と点の当たり判定を行う場合、全ての面それぞれと点の距離を調べて、その距離が全て同じ符号だった場合に当たってると判定すると思います。
たとえば、多面体の面それぞれについて、立体の内側をマイナス、外側をプラス、点と面の距離の絶対値をDとすれば、すべての面に対してD≦0であれば当たりで、一つでも不等式を満たさなければ当たっていないと判定できます。

これを、球の半径をrとしたなら、全ての面に対して球の中心との距離D≦rとなるようにすれば、いける気がします。
アバター
SatoshiMcCloud 2018/11/26 6:33 ◆Z1qfV11i63Jr
訂正:上のやり方だと、もしかしたら当たってなくても当たってると判定されるパターンがあるかも…すいません、もうちょっと考えます
アバター
こういち 2018/11/26 7:47 ◆ou0jbJnEJ0Kb
SatoshiMcCloudさん
貴重な意見ありがとうございます。
多面体はへこみがないことを前提に作ってあるのでその方法で大丈夫だと思います。参考にします。
アバター
こういち 2018/11/26 7:55 ◆ou0jbJnEJ0Kb
そして点と面の距離ってどうやって調べるんだろうと思って調べてたら多面体と点の当たり判定で既にほぼ使ってたという衝撃の事実。
アバター
こういち 2018/11/26 8:09 ◆ou0jbJnEJ0Kb
点と面の距離
面に垂直な大きさ1のベクトル(法線ベクトル)と、
点と面上の任意の点との位置ベクトルとの内積で求まるらしいです。
点と面の当たり判定では距離の符号さえ分かれば良かったので、垂直なベクトルの大きさを1にする作業(正規化)をしてなかったんですけど、正規化さえすれば普通に求まったんですね。
アバター
SatoshiMcCloud 2018/11/26 8:41 ◆Z1qfV11i63Jr
図は2Dで恐縮ですが…
多面体の複数の面に対してそれぞれ1点で接している球というパターンのときに、当たっていないのに当たってると判定されてしまう気がします。

計算量を犠牲にスピードを優先し、おおまかな判定でいいならこれでもOKかもしれませんが…
アバター
こういち 2018/11/26 12:32 ◆ou0jbJnEJ0Kb
確かに。
「交点が面の中にある」
の判定も必要ですね。
アバター
こういち 2019/6/22 22:31 ◆ou0jbJnEJ0Kb
閃いた。
こんな感じで緑の部分と点の当たり判定をとればいけるのでは?

ちょっと面倒そう。
三角形の場合時計回りと反時計回りで分岐必要そう。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -