Wiki内検索
最近更新したページ
2011-08-24
2010-05-18
2010-05-03
2010-02-18
2010-02-10
2010-02-09
2010-02-08
2010-02-07
2010-02-02
2009-12-24
2009-12-05
2009-07-05
2009-07-03
最新コメント
MenuBar1 by stunning seo guys
MenuBar1 by stunning seo guys
MenuBar1 by stunning seo guys
MenuBar1 by awesome things!
MenuBar1 by awesome things!
MenuBar1 by awesome things!
MenuBar1 by check it out
MenuBar1 by awesome things!
MenuBar1 by check it out
MenuBar1 by stunning seo guys
Menu
Programming Tips
タグ

cross3dcg

外積の計算



外積は、2つのベクトルを
x = y * z - z * y;
y = z * x - x * z;
z = x * y - y * x;
順で計算します。


C++


TVector cross(TVector &a, TVector &b)
{
TVector ret;
ret.v[0] = a.v[1] * b.v[2] - a.v[2] * b.v[1];
ret.v[1] = a.v[2] * b.v[0] - a.v[0] * b.v[2];
ret.v[2] = a.v[0] * b.v[1] - a.v[1] * b.v[0];
return ret;
};

Java


static Vertex cross(Vertex dest, Vertex v1, Vertex v2)
{
dest.x = v1.y * v2.z - v1.z * v2.y;
dest.y = v1.z * v2.x - v1.x * v2.z;
dest.z = v1.x * v2.y - v1.y * v2.x;
return dest;
}


外積は2つの辺に垂直な線を表すので、
面に垂直な法線を計算する時に利用できます。
2008年02月18日(月) 02:31:39 Modified by eruvasu




スマートフォン版で見る