初心者が3Dゲームを作るスレat GAMEDEV
初心者が3Dゲームを作るスレ - 暇つぶし2ch148:名前は開発中のものです。
06/06/20 21:54:59 q3QYoQKK
>>147
// 面と線の交点を求める
VectorMultiply( &a, &a, t);
VectorAdd( pos, &a, &begin);

// 0 = < t = < 1 以外の場合、交差していないので抜ける
if ( t < 0.0f || t > 1.0f) return false;

// 三角形内外判定
for ( int i = 0; i < 3; i++)
{
// 外積を利用して内外判定
VECTOR pn, p1, p2;
VectorSub( &p1, &v[((i+1)==3) ? 0: i+1], &v[i]);
VectorSub( &p2, pos, &v[i]);
CrossVector( &pn, &p1, &p2);

// 法線の方向判定用
pn.x = pn.x * n.x;
pn.y = pn.y * n.y;
pn.z = pn.z * n.z;

// すべての場合の法線が同一方向ならば、p は三角ポリゴン内に存在する
if ( (pn.x < -0.001) || (pn.y < -0.001) || (pn.z < -0.001)) return false;
}

// ここまで来たら交点有り
return TRUE;
}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch