我在 boost::geometry 中有许多多边形,并且想从一个多边形中找到与第一个多边形具有最长公共边界的特定邻居。多边形完全相互接触,因此boost::geometry::disjoint
返回 false,但以下代码始终返回周长 0:
typedef boost::geometry::model::d2::point_xy<double> boost_pnt;
typedef boost::geometry::model::polygon<boost_pnt> boost_poly;
boost_poly otherPol = ...;
boost_poly thisPol = ...;
if(! boost::geometry::intersection(thisPol, otherPol, out))
return -1;
float perimeter = 0;
BOOST_FOREACH(boost_poly const& p, out)
{
perimeter += boost::geometry::perimeter(p);
}
return perimeter;
我怎样才能找到共同的“边界”,即两个多边形的接触长度?