Matplotlib Polygon 在多边形之外得到填充

Matplotlib Polygon gets fill outside of polygon

我有一组多边形,使用 scipy.spatial.Voronoi 创建(具体来说,是 Voronoi 区域的一个子集),我想用 matplotlib 绘制这些多边形。然而,似乎对 matplotlib 多边形的顶点顺序有一些限制,因为一些多边形最终在多边形的 outside 而不是内部填充。在这些情况下,颠倒指定顶点的顺序似乎可以解决问题,所以在我看来这是一个缠绕的问题(即使文档没有提到这样的事情)。

但是,由于有些多边形的顺序正确,有些顺序错误,我不能只颠倒所有的顶点列表,所以有没有一种方法可以检测到错误排列的列表并仅修复那些或者让 matplotlib 自动执行等效操作的方法?

ImportanceOfBeingErnest 的评论让我走上了正确的轨道,这反过来又引导我 How to determine if a list of polygon points are in clockwise order?。基本上,我们找到多边形 P 中最右下角的点,即 P 之前的点 A 和 P 之后的点 B。叉积 AP x PB 的符号给出绕组:CCW 绕组为正,CW 为负缠绕.