我在boost :: geometry中有多个多边形,并且想从一个与第一个多边形具有最长公共边界的多边形中找到特定的邻居。多边形正好互相接触,从而boost::geometry::disjoint
返回false,但下面的代码总是返回周长0:如何在boost :: geometry中找到2个多边形的触摸长度?
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;
我如何才能找到共同的“边界”,这两个多边形的接触长度是多少?
由于似乎没有预定义的解决方案,我不得不建立自己的。谢谢你的帮助。好的灵感。 –
@REDSOFTADAIR我很确定我已经用数学方法确定了这一点,是不是值得接受? :-) –
我给了你一个投票。我仍然想知道是否有人直接在boost :: geometry中解决了这个问题。这是我的问题。 –