算法 – 如何有效地在平面上分布点

发布时间:2021-10-06 发布网站:前端之家 F2er.com
前端之家收集整理的这篇文章主要介绍了算法 – 如何有效地在平面上分布点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个宽度和高度的平面(屏幕)(显示器分辨率,而不是方形).而且我想在那架飞机上分配彼此相距(大约)相同距离的点.

例如:

> 1点将在中间,
> 2点将位于y轴的中间,x轴将除以3
> 3点可能像三角形,但如果它足够宽,则可以在相同的y中对齐
> 4像上面的第二部分,或作为矩形..
>等到最多8分

这有什么算法吗?

感谢您的时间!

编辑:彼此相同的距离和平面边界

EDIT2:我计算了我在平面上模拟行为的对象组的质心.

解决方法

根据您想要的精度:

>您可以通过Poisson磁盘采样获得随机正确的答案.具体地,泊松盘采样是随机采样,使得没有点比指定半径更近.这样的事物可以有效地(线性时间)以高维度实现 – 例如,:Robert Bridson的c代码:http://www.cs.ubc.ca/~rbridson/download/curlnoise.tar.gz执行他的论文http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf
>你可以真正优化积分的位置.这导致劳埃德算法和类似的优化程序:计算初始点集的Voronoi图,并将这些点移动到其Voronoi单元的质心.这也可以非常有效地完成,并且可以通过使用牛顿方法而不是Lloyd迭代来加速.
最终,如果您的域是正方形,您应该获得六边形网格(最小化上面的函数).

如果你只需要近似的结果,我建议第一种方法应该快得多.

总结


以上是前端之家为你收集整理的算法 – 如何有效地在平面上分布点全部内容,希望文章能够帮你解决算法 – 如何有效地在平面上分布点所遇到的程序开发问题。

如果觉得前端之家网站内容还不错,欢迎将前端之家网站推荐给前端开发程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。