1
如何用C++中的gsl库找到点(X0,Y0)和一组点{P0,...,Pn}之间的最小距离? 我有一个包含点{P0(X0,Y0),...,P(Xn,Yn)}和点C(X0,Y0)集合的多边形,我想计算C和一组点。gls图书馆,找到一个点和一组点之间的最小距离?
感谢
如何用C++中的gsl库找到点(X0,Y0)和一组点{P0,...,Pn}之间的最小距离? 我有一个包含点{P0(X0,Y0),...,P(Xn,Yn)}和点C(X0,Y0)集合的多边形,我想计算C和一组点。gls图书馆,找到一个点和一组点之间的最小距离?
感谢
double min_dist = DBL_MAX; // some large number
Point pointC; // set this to the point you want to compare
vector<Point> pointList; // push_back all your points
for (auto it = pointList.begin(); it != pointList.end(); ++it)
{
Point tempPoint = *it;
// Calculate distance between C and current point
double newDist = sqrt(pow((tempPoint.x - pointC.x),2) + pow((tempPoint.y - pointC.y),2))
// Update min_dist if necessary
min_dist = min(min_dist, newDist)
}
使用一些C++ 11层的功能,这可以写成
double min_dist = *std::min_element(begin(pointList),
end(pointList),
[pointC](const Point& lhs, const Point& rhs){ return std::hypot(lhs.x - pointC.x, lhs.y - pointC.y) < std::hypot(rhs.x - pointC.x, rhs.y - pointC.y); });
谢谢网络 – user3532163