如何使用一些多边形裁剪算法找到多边形的总面积和质心?

Posted

技术标签:

【中文标题】如何使用一些多边形裁剪算法找到多边形的总面积和质心?【英文标题】:How to find the total area and centroid of polygon using some polygon clipping algorithm? 【发布时间】:2012-12-29 08:21:22 【问题描述】:

我想知道裁剪后多边形的总面积和质心。多边形可以是凸的也可以是凹的。但不是自相交。

我知道有很棒的多边形裁剪库。但是,我认为我的情况很特殊(更简单),我真的很想提高性能。

任何人都知道在这里处理这种情况的最佳算法是什么。任何现有的代码都会很棒。

参考文献:Polygon clipping by a line 最能说明我的问题。

【问题讨论】:

多边形可以是凸面也可以是凹面。但不是自相交 好的,我会给你一些关于如何做到这一点的提示。如果你被卡住了,也许我会花一些时间。查找非自相交多边形的面积 (alienryderflex.com/polygon_area) 和质心 (***.com/questions/2792443/…) 的算法在计算几何中是标准的。它们相对于顶点数线性运行。您可以按如下方式修改这些算法以满足您的需要:当边与线相交时,添加一个等于边与线交点的顶点。忽略线下的所有顶点。 【参考方案1】:

I think this link can show some light on your question.如果你能把你尝试过的和得到的结果提供给我们,我们就能给你更好的结果。

【讨论】:

vbforums.com/showthread.php?421920-Polygon-clipping-by-a-line 显示的 VB 代码运行良好。只是想知道有没有这样的 C# 代码。我尝试手动转换代码,但是 VB 代码中使用的数组索引是基于 1 的,而 c# 是基于 0 的。我转换的程序不起作用。

以上是关于如何使用一些多边形裁剪算法找到多边形的总面积和质心?的主要内容,如果未能解决你的问题,请参考以下文章

Python:找到一种计算多边形“内质心”(X,Y)的方法

没有退化边缘的凹面多边形线裁剪

youcans 的 OpenCV 例程200篇197.轮廓的基本特征

使用 Sutherland-Hodgman 算法时多边形裁剪不起作用

裁剪算法——多边形裁剪/文字裁剪

多边形相交的简单算法