3つの点A、B、Cを通る平面を求めるには? 要素は3次元空間内に存在するものとします。
点Aを通り、ベクトルABとベクトルBCの外積が法線ベクトルな平面が求めるべき平面です。 bool CalcPlane( const CNhPoint3d& pointA, const CNhPoint3d& pointB, const CNhPoint3d& pointC, CNhPlaned& plane ) { CNhVector3d vectorAB = pointB - pointA; CNhVector3d vectorBC = pointC - pointB; CNhVector3d vectorNormal = vectorAB.CalcOuterProduct( vectorBC ); if( 0.0 == vectorNormal.CalcLengthSquared() ) { // ゼロベクトル return false; } plane = CNhPlaned( vectorNormal.CalcNormal(), pointA ); return true; }
サンプルプロジェクト