加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 在矩形内生成随机点(统一)?

发布时间:2020-12-13 23:58:02 所属栏目:Linux 来源:网络整理
导读:我试图在矩形内生成一定数量的随机均匀点(我知道每个角的坐标对). 让我们的矩形 A B C D 我的想法是: 通过AC对角线将矩形划分为两个三角形.求斜率和对角线的截距. 然后,从[0,1]间隔生成两个随机数,让它们成为a,b. 评估x = aAB和y = bAD(AB,AD,距离).如果A不
我试图在矩形内生成一定数量的随机均匀点(我知道每个角的坐标对).

让我们的矩形
A B C D

我的想法是:
通过AC对角线将矩形划分为两个三角形.求斜率和对角线的截距.
然后,从[0,1]间隔生成两个随机数,让它们成为a,b.
评估x = aAB和y = bAD(AB,AD,距离).如果A不是(0,0),那么我们可以添加到x和y A的坐标.
现在我们有一个点(x,y).如果它不在下三角形(ABC)中,请跳至下一步.
否则,将点添加到我们的绘图中,并添加(x,y)与AC对角线的对称性,以便我们也可以填充上三角形(ADC).

我已经实现了这一点,但我非常怀疑这些点是统一生成的(从图中判断).我应该如何修改我的算法?我猜这个问题与我如何选择三角形和对称的东西有关.

解决方法

这被称为 point picking和其他类似术语.你似乎走在正确的轨道上,因为这些点应该来自均匀分布.你的情节对我来说看起来很随机.

你在做什么用上三角和下三角?它们似乎是不必要的,肯定会减少随机性.是否有一些形式的差异减少了antithetic variates?如果@ Paddy3118是正确的,你真的需要随机点来填充空间,那么你应该看看low-discrepancy sequences. Halton sequence将van der Corput sequence推广到多个维度.如果您有Matlab的统计工具箱,请查看sobolsethaltonset函数或qrandstreamqrand.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读