【发布时间】:2010-11-29 06:32:05
【问题描述】:
我是建议包含在 boost 中的通用几何库的新手:
http://geometrylibrary.geodan.nl/
我有两个向量 vector<int> Xb, Yb 我正在尝试从中创建一个多边形。我正在尝试按照以下代码 sn-p 获得一些东西:
polygon_2d P;
vector<double>::const_iterator xi;
vector<double>::const_iterator yi;
for (xi=Xb.begin(), yi=Yb.begin(); xi!=Xb.end(); ++xi, ++yi)
P.push_back (make<point_2d>(*xi, *yi));
上面的代码不起作用,抱怨P没有push_back成员函数。如何从坐标为vector<int> Xb,vector<int> Yb 的点初始化多边形?
【问题讨论】:
-
快速说明一下,您提到的特定库很可能会在审查过程中幸存下来。你今天最好的选择是为通用多边形裁剪器库编写一个轻量级的 C++ 包装器,因为提出的 2D 多边形操作提交中没有一个能达到 GPC 提供的性能。
-
感谢您的建议,Beh。 GPC 似乎是一个不错的库,但它似乎缺少一个对我来说很重要的功能——即计算多边形面积的能力。
-
Dzhelil,幸运的是,面积算法自己实现很简单。 alienryderflex.com/polygon_area
-
@Beh Tou Cheh - 供您和其他人参考,它幸存下来并成为 Boost C++ 库的一部分。
-
现在它已作为 Boost.geometry 包含在 Boost 中
标签: c++ boost polygon boost-geometry