编辑:我已经找到了解决方案。如果您将来遇到此问题,请随时与我联系,并需要类似的东西。
-
不是在平面上生成随机点,而是如何检查给定坐标是否等于随机点?或者在随机边界框内?
例如,您有一个带整数坐标的平面。该平面以某种方式填充了随机边界框(使用公式生成,而不是数据)。目标是检查给定(x,y)是否在其中一个框内。
我可以找到许多关于如何生成随机点的参考文献,但对于以这种更向后的方式进行操作并不多(我猜你称之为'功能性'?)。
我设法制作了一个算法,将平面分成100x100个方格,每个方格内都是一个随机放置的边界框。但是,使用算法可以更有机地放置盒子吗?
编辑:这是我用于100x100网格内的简单随机点的示例算法" (从记忆中,可能会遗漏一些东西):
// check if equal to a random point within the point's grid square
boolean isRandomCenter(x, y) {
// offset relative to origin of grid square
int offsetX = x mod 100
int offsetY = y mod 100
// any random seed will do
int randomSeed = x * y
// random position of point for this square
int randomOffsetX = random(50, randomSeed)
int randomOffsetY = random(50, randomSeed)
if (offsetX == randomOffsetX && offsetY == randomOFfsetY)
return true
return false
}
答案 0 :(得分:1)
嗯,我不知道我是否完全理解你的问题,但知道在两个轴x和y表示的二维欧几里德空间中绘制的给定点M(x,y)是否在一个盒子内的条件用两个相反的点表示A(xa,ya)和B(xb,yb)非常简单。
让我们定义一个函数isInsideTheBox(x,y,xa,ya,xb,yb)返回show . read
如果M在框内,true
则为:
false
答案 1 :(得分:1)
我正在回答这个问题:检查一个点是否在一个随机点上。
如果坐标是真实的,重叠的概率为空,问题实际上是无用的。所以我假设离散坐标。
如果问题涉及已经绘制的随机点,唯一的方法是在绘制它们时记住某个容器中的随机点(数组,排序,列表,搜索树,哈希表)。
如果问题涉及可能在该位置绘制的点,则答案为" true"在整个域中(分布非零)。您需要在几何上对域进行建模以执行point-in -...查询。
如果问题是关于伪随机点或准随机点,我不认为有任何捷径,你应该继续进行真正随机的情况(除非发电机真的很差)。