主要采用了ProjectPoint()函数,x[3]表示点坐标,origin[3]表示平面上一点的坐标,normal[3]表示平面法向量坐标,xproj[3]表示点x投影到平面的坐标。
static void vtkPlane::ProjectPoint (double x[3],
double origin[3],
double normal[3],
double xproj[3]
)
实例代码:
#include <vtkSmartPointer.h>
#include <vtkPlane.h>
int main()
{
vtkSmartPointer<vtkPlane> plane =
vtkSmartPointer<vtkPlane>::New();
plane->SetOrigin(0.0, 0.0, 0.0);
plane->SetNormal(0.0, 0.0, 1.0);
double p[3] = {2, 3, 4 };
double origin[3] = { 0.0, 0.0, 0.0 };
double normal[3] = { 0.0, 0.0, 1.0 };
double projected[3];
plane->ProjectPoint(p, origin, normal, projected);
std::cout << "Projected: " << projected[0] << " "
<< projected[1] << " " << projected[2] << std::endl;
return 0;
}