球と円柱の当たり判定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
make_unique
記事: 6
登録日時: 2年前

球と円柱の当たり判定

#1

投稿記事 by make_unique » 2年前

こんにちは3Dの当たり判定で円柱と球の当たり判定をやりたいのですが、なかなかうまくいきません。
どういう条件で当たっているか判定できますか?

littlestream
記事: 48
登録日時: 7年前

Re: 球と円柱の当たり判定

#2

投稿記事 by littlestream » 2年前

球と球の当たり判定を応用して座標毎に行うのはどうでしょうか?
円柱は下底が円なのでそれに高さで伸ばしてみるのと
球はそのまま球の当たり判定へ組み込めるので

球と円柱のあらゆる座標との当たり判定でどうでしょうか?
自分はそれを応用してレイトレーシングでソフトウェアレンダリングしたことがあります。

確か球と球の当たり判定は球Aと球Bと半径RA,RBとすると
(AX-BX)^2+(AY-BY)^2+(AZ-BZ)^2<(RA+RB)^2
だと思います。

littlestream
記事: 48
登録日時: 7年前

Re: 球と円柱の当たり判定

#3

投稿記事 by littlestream » 2年前

DXLIB依存なら球とモデルの当たり判定という関数があります。
https://dxlib.xsrv.jp/function/dxfunc_3 ... .html#R9N5

アバター
usao
記事: 1887
登録日時: 11年前

Re: 球と円柱の当たり判定

#4

投稿記事 by usao » 2年前

円柱の中心軸と球の中心点が成す平面上で考えれば
ただの長方形と円の判定になるんじゃない?

make_unique
記事: 6
登録日時: 2年前

Re: 球と円柱の当たり判定

#5

投稿記事 by make_unique » 2年前

皆さん回答ありがとうございます!

実は私当たり判定がすごく苦手なのでいままで逃げてきたんですよね...

なので球と球しかわからないです...

littlestreamさん
申し訳ないですけどちょっと仰っていることがわからないです。すみません...
DXライブラリは使っていなくて、DirectX11を使っています。

usaoさん
なんかよさそうなんですけどどういう風に計算できるものなのでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 球と円柱の当たり判定

#6

投稿記事 by みけCAT » 2年前

usaoさんの言うように、円と長方形の当たり判定に帰着させる方法が良さそうですね。
まず、
点と直線と平面と交点と距離
に載っている方法で、球の中心点から円柱の中心軸に垂線を下ろした時の交点を求めます。
すると、この交点を原点、円柱の中心軸をx軸、交点と球の中心点を通る直線をy軸 (軸の向きは適当に)
とした平面を考えることができ、
その平面における球の中心点、および円柱の2個の底面と中心軸の交点の座標 (≒距離) がわかるはずです。
あとは、これらの座標と、球や円柱の半径を用いて、当たり判定をする円と長方形の座標が求まります。
mixcpp-20210809.png
円と長方形への帰着
mixcpp-20210809.png (11.75 KiB) 閲覧数: 7529 回
円と長方形の当たり判定は、たとえばここで。
よしいずの雑記帳 円と長方形との当たり判定
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

make_unique
記事: 6
登録日時: 2年前

Re: 球と円柱の当たり判定

#7

投稿記事 by make_unique » 2年前

みけCATさんありがとうございます。

私がやりたいのは円柱の丸い面の上で球のコリジョンを持ったキャラクターが戦う
というものなんですけどその判定がいるのですけどどうしましょう?

アバター
usao
記事: 1887
登録日時: 11年前

Re: 球と円柱の当たり判定

#8

投稿記事 by usao » 2年前

> どうしましょう?

って何だ?
「実装すればよくね?」以外に何かある?

みけCAT氏の図のaの値が円柱半径以内のときは判定方法は自明,みたいな処理を先にやる形にすれば
「面を成さない」パターンはそっちに含まれるから変な面倒も起きないだろう.

アバター
usao
記事: 1887
登録日時: 11年前

Re: 球と円柱の当たり判定

#9

投稿記事 by usao » 2年前

矩形と円の交差判定:
viewtopic.php?f=83&t=16423

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 球と円柱の当たり判定

#10

投稿記事 by みけCAT » 2年前

make_unique さんが書きました:
2年前
私がやりたいのは円柱の丸い面の上で球のコリジョンを持ったキャラクターが戦う
というものなんですけどその判定がいるのですけどどうしましょう?
どう実装するかを考えて実装すればいいと思います。

・円柱は何個あるのか?
・円柱は動くのか?
・「戦う」とは具体的にどのような動作か?
・キャラクターの可能な動きは? (たとえばジャンプはできる?)

などによって、具体的な適切な実装は違ってきそうだと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Nanashi 777

Re: 球と円柱の当たり判定

#11

投稿記事 by Nanashi 777 » 2年前

通りすがりですが

usaoくんはなんでマトモな回答もしてないのにタメ口でしかも揚げ足をとるような口調なんでしょうか?
昔ながら(苦笑)の閉鎖的、排他的なエンジニア感があって見てられずコメントしてしまいました。

返信

“C言語何でも質問掲示板” へ戻る