ベクトルに直交するベクトルはで表されます。
このことから次のように座標が与えられているとき、点Pの座標値は以下のようにして求められます。
void CalcNormal ( Dpoint3d baseP, Dpoint3d origP, Dpoint3d &p1, Dpoint3d &p2, double dFootLength ) { double dParam; double dM, dN; dM = origP.x - baseP.x; dN = baseP.y - origP.y; dParam = sqrt( (dFootLength*dFootLength) / ( dM*dM + dN*dN ) ); p1.x = baseP.x + dParam*dN; p1.y = baseP.y + dParam*dM; p1.z = baseP.z; p2.x = baseP.x - dParam*dN; p2.y = baseP.y - dParam*dM; p2.z = baseP.z; }