一連の 3D ポイントがあり、どのポイントが特定のポイントpに最も近いかを計算する必要があります。Eigenでそれを行う正しい方法はどれだろうと思っています。これまでのところ、私は持っています:
Matrix<double, Dynamic, 3> points; // The set of 3D points
Matrix<double, 1, 3> p;
// Populate the "points" matrix
...
// Fill a matrix with several copies of "p" in order to match the size
of "points"
Matrix<double, Dynamic, 3> pp(points.rows(), 3);
pp = Matrix<double, Dynamic, 1>::Ones(points.rows, 1) * p;
Matrix<double, Dynamic, 1> sq_distances = (points - pp).rowwise.squaredNorm();
Matrix<bool, Dynamic, 1> nearest_points = sq_distances < (dist_threshold * dist_threshold);
次に、次のように「nearest_points」条件を満たす「points」内のポイントを抽出する方法がありますか?
Matrix<double, Dynamic, 3> nearest = points(nearest_points);
?