gpt4 book ai didi

python - 环形包裹(x 和 y 包裹)二维数组上一组位置的质心?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:40 26 4
gpt4 key购买 nike

我有一个平坦的欧几里德矩形表面,但是当一个点移动到右边界时,它将出现在左边界(在相同的 y 值)。反之亦然,跨越顶部和底部边界。我希望能够计算一组点的质心。所讨论的点集大部分聚集在一起。

我知道我可以通过对所有 x 和 y 值取平均值来计算一组点的质心。我如何在环绕式 map 中做到这一点?

最佳答案

如果集群规模相对较小(小于网格的一半),您可以使用简单的方法:

假设表面宽度和高度为 W 和 H。假设表面尺寸增加了三倍,因此您有 -W..2*W 和 -H..2*H 轴范围。展开包装值。

 XMin = X[0];  XMax = X[0]
the same for Y

for i = 1..N-1
Check distance from X[i] to XMax and XMin
Get largest of them D
If D is larger than W/2, shift X[i] by W
//example1: W=100, Xmin = 70, XMax = 90, X[i]=10 => X[i]=20+100 = 120
//example2: W=100, Xmin = 5, XMax = 12, X[i]=98 => X[i]=98-100 = -2
the same for Y
update Min/Max
Calc (W + Average(X[i])) %% W //modulo operation

关于python - 环形包裹(x 和 y 包裹)二维数组上一组位置的质心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40744501/

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