07/03/29 16:57:43
別スレで スレリンク(tech板:9番) の質問をして、最終的にこちらに誘導されてきました。
質問の回答として、以下のコードを教えてもらいました。
v1 … p1→p2 のベクトル
v2 … p2→p3 のベクトル
struct point { double x, y; };
bool isJustLeft(point v1, piont v2)
{
double corssProd = v1.x * v2.y - v1.y * v2.x; //外積
double norm1 = v1.x * v1.x + v1.y * v1.y; // |v1|^2
double norm2 = v2.x * v2.x + v2.y * v2.y; // |v2|^2
if( corssProd < 0.0 ) return false; // 時計回りはダメ
if( crossProd * crossProd == norm1 * norm2 ) return true; // 直角判定
return false;
}
でも、ベクトルの外積って通常3次元のベクトルを返しますよね。上記だと
> double corssProd = v1.x * v2.y - v1.y * v2.x; //外積
とスカラー値を返しているのですが、今一つやっている意味が判りません。
URLリンク(yuki.to)
ぐぐったらこんな掲示板見つけたけど、回答者の答えがイマイチ判りません。
コードを通して、ベクトルを理解したいのですが、誰か教えてもらえませんか?