如何有效识别两个多边形或多边形是否相同?

问题描述 投票:0回答:1

我比较了很多多边形,找出它们是否相同、不同、不同但相似。

我观察到,即使屏幕上的两个多边形相同,它们也不一定是相同的数据,例如,从顶点组(ABCD)和顶点组(BCDA)循环。 我可以重新排序,但某些多边形的顶点太多。 每次比较两个多边形时我都必须这样做。

另外,假设有人画了一个半径为 1 米的圆作为 100 边形,任何其他人都画了同样的具有 150 边形的圆。我如何重新排序数据并不重要,它们将是完全不同的数据,但本质上非常相似的图形。

我假设给定两个多边形,如果它们的累积长度(周长)和面积相同,我们可以说这两个多边形相同?例如。 正方形和圆形可以具有相同的周长,但它们的面积会不同,反之亦然。

我无法证明它的任意形状,但我无法举出一个例子来证明它是错误的。

我买了一些书,比如图论,试图找到一个定理,但到目前为止我还没有找到。 如果我的假设是正确的,那么我们可以存储周长和面积,以便我们可以比较多边形。

如果有人能指出阅读的方向,不胜感激? python 库或提供 python 代码片段,我可以正确比较多边形?

python graph polygon
1个回答
0
投票

这完全取决于您这样做的目的。决定取决于什么:相同还是不同?

一般来说,我会说使用“瀑布”方法。开始使用粗略的、易于计算的测量来消除多边形对,并且仅对有合理机会相同的对进行更严格、详细的检查。

所以:

IF perimeter equal THEN
   IF area equal THEN
      IF .... THEN
          RETURN same
RETURN SAME

您使用什么进行更详细的测试再次取决于您到底想要什么。你的问题对于你到底想要什么含糊其辞。

我可以重新排序,但有些多边形的顶点太多。

那么,如果两个多边形以不同的顺序输入相同的顶点,您是否认为它们相同?或不?通常,在这种工作中,多边形顶点的顺序是仔细预定义的 - 它们必须是相邻顺序,顺时针或逆时针,因此除了垂直顺序之外,两个多边形不可能相同。

“太多”顶点是什么意思?

我想说,你的部分困难是你的要求需要澄清,即使只是在你自己的想法中。如果你清晰简洁地写下来,你可能会发现解决方案变得显而易见。如果没有,其他人帮忙会更容易。

© www.soinside.com 2019 - 2024. All rights reserved.