我正在做一个模拟,该模拟需要沿任意形状的轨道随机放置任意大量的对象(100,000+)。
在其最简单的实现中,我开始使用 C++ 并编写了一个非常简单的函数来沿Track
. 在这种情况下,Track
是一条尺寸为 25 x 500 的水平线。 Anode
仅由X
/Y
坐标组成,尺寸为 5 x 5,所以我写了类似...
Node.x = rand()
Node.y = rand()
while (Node.x is not on the Track)
Node.x = rand()
while (Node.y is not on the Track)
Node.y = rand()
这种非常天真的方法体现了我所需要的:大量的nodes
要在track
. 我也试过在 的范围内有x
和y
是随机数track
,但track
会是随机的、复杂的、相互连接的一系列线,例如 8 字形、蛇形线、小正方形、一系列“岛屿”,或整个领域。节点不能在轨道之外实例化。
我可以使用哪些现有算法/方法来实例化赛道上的这些节点?