
p0離紅色線段最近的點,即本身所在位置(1,0,0), 所以距離平方為0p1離紅色線段最近的點(1, 0, 0), 距離平方為4
// DistancePointToLine.cpp : 定義主控台應用程式的進入點。//#include "stdafx.h"#include <vtkSmartPointer.h>
#include <vtkLine.h>
#include <vtkPoints.h>
int _tmain(
int argc, _TCHAR* argv[])
{
double lineP0[3] = {0.0, 0.0, 0.0};
double lineP1[3] = {1.0, 0.0, 0.0};
double p0[3] = {1.0, 0, 0};
double p1[3] ={ 1.0, 2.0, 0};
/* vtkSmartPointer<vtkLine> line = vtkSmartPointer<vtkLine>::New(); line->GetPoints()->SetPoint(0, lineP0); line->GetPoints()->SetPoint(0, lineP1); */{
double dist0 = vtkLine::DistanceToLine(p0, lineP0, lineP1);
std::cout <<
"Dist0: " << dist0 << std::endl;
double dist1 = vtkLine::DistanceToLine(p1, lineP0, lineP1);
std::cout <<
"Dist1: " << dist1 << std::endl;
}
{
double t;
double closest[3];
double dist0 = vtkLine::DistanceToLine(p0, lineP0, lineP1, t, closest);
std::cout <<
"Dist0: " << dist0 <<
" closest point: " << closest[0] <<
" " << closest[1] <<
" " << closest[2] << std::endl;
double dist1 = vtkLine::DistanceToLine(p1, lineP0, lineP1, t, closest);
std::cout <<
"Dist1: " << dist1 <<
" closest point: " << closest[0] <<
" " << closest[1] <<
" " << closest[2] << std::endl;
}
char c;
std::cin >> c;
return 0;
}