FC2ブログ
夢か現か、きっと気付けば、貴方は夢うつつのまどろみの中へ。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- (--:--) / スポンサー広告 / (-) / (-) /
やっと、実家のお盆関連の 面倒ごと 行事 終了~。
妙に疲れた時間を追えてばったりなLenardです。こんばんわ。

そして、家に帰ってまずやるのが数学という悲しい人生。
なのに、理解に至らないという不毛さ。あぁ、無常…。

実は、自分、すっごい数学苦手なんじゃないかとか思い始めた最近。
どうにも、我ながら理解速度が遅い。
もうその遅さと来たら、亀と比較してしまうと、
実は亀って羽ばたいているんじゃないか」と思えるくらいの速度です。
かめすげぇ。実は、飛んでたんだ~。

…現実は、私が地面に這い蹲ってるだけですけどね。
分かってますよ。こんちくしょー。

こうなると、基礎学力の不足も大きいのかもしれん…。(;;
ど、どこからやり直せばいいんだ…orz


<私信>
bp様。Jordanの定理とは、ガウスの消去法? Jordanの分解定理?
どれなのでしょう…。(汗
どちらも、ぱっと見では全く理解に至らないため、どうしていいやら。
素直に6本判定した方が私には良いかも…f(--;
スポンサーサイト
2006.08.15 (23:27) / Diary / (0) / (2) /
Jordanの定理→Jordanの閉曲線定理ということで。

改めて考えてみたんだけど、実は6本ともやると重すぎて使い物にならないかと。で、こういう要領ではどうだろう?まあ、読むだけ読んでみておくんなまし。
ゲームで使うのだから衝突判定は*動的な*オブジェクト同士で
やることになる筈だ。そこで、具体的には次フレームへの変化に目を付ける。

例えば、あるフレームF(1)から、次フレームF(2)への更新処理中の接触判定を行う場合。
△ABCと△EFGがあるとする。
△ABCの重心をD、△EFGの重心をHとする。
△ABCを含む面を面Pとし、△EFGを含む面を面Qとする。

ここで、F(i)の時のDの位置をD1、F(i+1)の時のDの位置をD2とすると、ベクトルD1D2が作れる。
Hについても同様にして、ベクトルH1H2が作れる。
その後の処理は次の要領で。
(注:∥D1D2∥ってのは、ノルムのことね。)

//ここから
if(点D2と面Qの距離 <= ∥D1D2∥)
{
△EFGとベクトルD1D2の交差判定
}
if(点H2と面Pの距離 <= ∥H1H2∥)
{
△ABCとベクトルH1H2の交差判定
}
//ここまで

こんな感じでやると、2つのポリゴン間について2線分だけの判定になる。
それでも、全てのポリゴン間でやるとシャレにならないので、
例えば格闘ゲーなら、拳の部分を構成する複数のポリゴン群について
拳の当たり判定キューブ(代表メッシュ)を用意し、そのキューブの移動から上の要領でベクトルを生成。
対戦相手の当たり判定を示す代表メッシュに対して、上の要領で交差チェックをするようにすれば
ある程度の処理速度が確保できると思われる。
2006.08.16(17:05) / URL / bp / #- / [] /
> bp様
“しっかり”読ませていただきました。
やはり、全部の三角形同士の判定は処理が多すぎるので、
その前に 『省く条件』 の判定をした方がいいのですね。
後、実際のオブジェクトとは別に、当たり判定用のオブジェクトの用意なども策の一つなのですね。

んー。なんとなく、コードの改善方針が出てきたので色々弄くってみようと思います。
解説、ありがとうございました。 <m(_ _)m>
2006.08.16(23:17) / URL / Lenard / #GCA3nAmE / [] /





 管理者にだけ表示を許可する


Copyright © 2004 Powered by FC2 All Rights Reserved.
Template by lovehelm
/ 2018.12 /
S M T W T F S
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。