我想创造一个随机的世界。为简单起见,假设它基于每个单元格的二维网格,每个单元格的边长为 1m。
现在我使用一个简单的算法来创建随机形式(用于森林、湖泊等):
1. fill a circle of radius r with the wanted property
2. choose 4 points on the edge of this circle and
3. goto (1.) with all those four points as center and r/1.3
我有点喜欢这个,因为它创建的形式具有随机形式,而圆形的基本形式通常不可见。
不过有两个问题:
- 有时(当前四个点被选得太近时)很明显森林是由什么基本形式构成的
- 该算法的性能非常差。单元格被一遍又一遍地填充,因为圆圈总是重叠+所有这些距离计算等。
所以:有没有成功用于创建随机形式的算法?我敢肯定我不是第一个想要这样做的人......
我考虑过选择随机点并形成它们的凸包 - 但我不想将自己局限于凸形。为极坐标中的不同角度选择随机距离只会创建星域——这又是一个我不想要的限制......