gpt4 book ai didi

c++ - 在 boost geometry c++ 库中我添加的点的顺序有关系吗?

转载 作者:行者123 更新时间:2023-11-30 01:52:37 25 4
gpt4 key购买 nike

我是 boost 的新手,甚至是 boost-geometry 的新手,所以我的问题是...... boost-geometry 与我向多边形添加点的顺序有关系吗?

例如:这是一样的吗?

// create a polygon
polygon p;
p.outer().push_back(point(0, 0));
p.outer().push_back(point(0, 10));
p.outer().push_back(point(10, 0));
p.outer().push_back(point(10, 10));

// create a polygon the same polygon?
polygon p;
p.outer().push_back(point(0, 0));
p.outer().push_back(point(0, 10));
p.outer().push_back(point(10, 10));
p.outer().push_back(point(10, 0));

非常感谢您。

最佳答案

如前所述here :

The point order is defined for any geometry type, but only has a real meaning for areal geometry types (ring, polygon, multi_polygon)

关于多边形的概念,有写的一些规则here :

  • 如果将 ring_type 下的多边形定义为顺时针方向,则外环必须具有顺时针方向,并且任何内环都必须反转 w.r.t.定义的方向(因此:顺时针外环为逆时针方向)。
  • 如果ring_type是逆时针定义的,则反之。
  • 如果将 ring_type 下的多边形定义为闭合的,则所有环都必须闭合:第一个点在空间上必须与最后一个点相等。

当您使用相交、面积、质心、并集等算法时,点顺序很重要。要在使用这些函数之前更正几何图形,请使用 boost::geometry::correct ( reference )

关于c++ - 在 boost geometry c++ 库中我添加的点的顺序有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com