我有一个多边形,它有五个这样的点:
然后我将另一个点添加到多边形(红色的一个):
确定两个多边形的算法是相同的(不仅角度/长度相同,坐标也相同)。
答案 0 :(得分:1)
因为相同的意思是相同的形状,大小,方向和位置
A={ a0,a1...a(n-1) }
和B={ b0,b1,...b(m-1) }
对于初学者我假设你没有过采样(行总是不超过2分)
比较m,n
m==n
所以我将从现在开始使用n
在(a(i)==b(j))
i,j=<0,n)
i=0,j=0
i=0
并使用单个j
循环查找O(n)
比较分数
for (k=0;k<n;k++)
{
if (a(i)!=b(j)) return false; // not the same
i++; if (i>=n) i=0;
j++; if (j>=n) j=0;
} return true; // are the same
if (|a(i)-b(j)|>=max_difference_treshold)
1e-6
或1e-10
值对于过采样的多边形,您需要首先对展位A,B的点进行重新取样
p(i-1),p(i),p(i+1)
d1=p(i)-p(i-1); dx1=p1.x; dy1=p1.y;
d2=p(i+1)-p(i); dx2=p2.x; dy2=p2.y;
(dx1*dy2==dx1*dy1)
,则从集合p(i)
答案 1 :(得分:0)
//import turf library
var turf = require('@turf/turf');
// create polygon using turf or you can directly use geoJSON
var polygon1 = turf.polygon(firstPolygonCoordinates);
var polygon2 = turf.polygon(secondPolygonCoordinates);
// Compare two polygon using turf's booleanEqual method
if (turf.booleanEqual(polygon1, polygon2)) {
// Add your logic here
}
答案 2 :(得分:-1)
取决于您的观点。两个矩形可以独立于位置而相同。