VTK隱函數之vtkPlane

vtkPlane

 vtkPlane provides methods for various plane computations. These include projecting points onto a plane, evaluating the plane equation, and returning plane normal. vtkPlane is a concrete implementation of the abstract class vtkImplicitFunction.

成員函數:

  • void EvaluateFunction(double x[3])、void EvaluateFunction(double x,double y,double z)用於估算點x[3]是否位於平面上、平面前或平面後(法線方向爲前),它是從抽象類vtkImplicitFunction繼承而來,在基類中它是一個純虛函數。
  • void EvaluateGradient (double x[3], double g[3])用於估算點x[3]處函數傾斜度
  • void vtkPlane::SetNormal(double x[3])、void vtkPlane::SetNormal(double x,double y,double z)
  • Set/get平面法向量.平面是由“點”和“法向量”定義的。
  • void Set/GetOrigin(double x[3])與SetNormal用法類似。
  • void vtkPlane::Push(double distance)該函數可以將平面沿着法線方向移動distance距離

 在成員函數中還定義了點、矢量向某個平面投影的功能函數,如ProjectPoint、ProjectVector等。

 隱函數的數學表達式爲F(x,y,z)=w,平面的隱函數方程有點法式和一般式。在vtkPlane中採用的是點法式隱函數。
 點法式平面隱函數方程爲:A(x-x0)+B(y-y0)+C(z-z0)=w, (A,B,C)爲平面法向量,即vtkPlane中的Normal,(x0,y0,z0)爲平面上一點,即vtkPlane中的Origin。
 平面的一般式方程爲:Ax+By+Cz=w


EvaluateFunction(...)函數的源代碼如下:  

double vtkPlane::EvaluateFunction( double x[3] )
{
  return ( this->Normal[0]*(x[0]-this->Origin[0]) +
           this->Normal[1]*(x[1]-this->Origin[1]) +
           this->Normal[2]*(x[2]-this->Origin[2]) );
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章