平面方程式

3Dの基本の平面方程式について。
 
3次元空間で、平面を表現する式は以下のようになります。
ax+by+cz+d=0
平面を作るには、この式を作る必要があります。
※この平面の法線ベクトルは(a, b, c)になります。
 
必要となる情報は、

  • 平面上の任意の点
  • 平面の法線ベクトル

です。
 
例えば、任意の点を(2, 3, -1)、法線ベクトルを(1, -2, 3)とすると、
平面方程式は、
1(x-2)+(-2)(y-3)+3(z+1)=0
x-2-2y+6+3z+3=0
x-2y+3z+7=0
が求める平面方程式になります。
 
また、Direct3Dでは、平面方程式は、
こんな感じに定義されています。

struct D3DXPLANE
{
	FLOAT a, b, c, d;
};

そしてヘルパー関数として、

D3DXPlaneFromPointNormal(D3DXPLANE *plane, D3DXVECTOR3 *p, D3DXVECTOR3 *v)

があり、
pに「平面状の任意の点」を指定して、
vに「平面の向き」を指定すれば、
planeに平面が設定されてしまいます。
 
う〜ん、便利すぎ。
っていうか、こんな便利なものばかり使っていると、
ホント、ダメ人間になってしまいますねw