我想在一个矩形内生成一定数量的随机均匀点(我知道每个角的坐标对)。在矩形内(均匀地)生成随机点?
让我们的矩形是 ABCD
我的想法是: 由AC对角线划分矩形成两个三角形。找到对角线的斜率和截距。 然后,从[0,1]区间生成两个随机数,让它们为a,b。评估x = a AB和y = b AD(AB,AD,距离)。如果A不是(0,0),那么我们可以添加到x和y A的坐标。 现在我们有一个点(x,y)。如果它不在下面的三角形(ABC)中,跳到下一步。 否则,将该点加入我们的图中,并且还添加(x,y)与AC对角线的对称,以便我们也可以填充上三角形(ADC)。
我已经实现了这一点,但我高度怀疑这些点是统一生成的(从图中判断)。我应该如何修改我的算法?我想这个问题与我如何选择三角形和对称的东西有关。
你可以扩展你的意思是“随机制服”。这些都不是免费的想法,我可以设想一些方法来定义“一致随机”。此外,将你的散文解释为伪代码的格式将有助于澄清你在做什么。 – ChrisCM
“随机均匀”我的意思是我应该生成必须均匀分布在矩形区域的随机数。 –
你的情节有什么问题,具体是?我仍然不清楚你如何定义制服......统一的统计/概率通常简单地指发生事件的可能性,而不是选定值的结果分布。例如,非均匀分布的左上角的点的概率会更高,但您仍然可以得到看起来像您的结果,但它们会更“不可能”,因为没有高密度的角落点。 – ChrisCM