2012-03-05 52 views
0

对于一个项目,我在三维空间中创建行星,基于一个中心“家居世界”,这些中心是从原点向各个方向随机生成的。三维随机生成的行星

我已经看过程序代和佩林噪声,但我找不到一个体面的方法来使它们适用,但我是任何种类的随机一代的新手。

3D点生成算法的任何良好起点,以原点为中心,最好基于种子(因此相同的种子构成相同的宇宙)。

谢谢!

+0

星系统中的所有行星(通常)都围绕质心(恒星)在公共平面上绕轨道运动,或者与这样一个平面有很小的偏差(角度)。 – 2012-03-05 06:40:22

+0

不幸的是,我们并不想要现实主义。这只会是一个几乎无尽的行星范围,随着你越来越远,它的规模会越来越大。 – Befall 2012-03-05 06:56:58

回答

1

尝试使用一组不同的随机数,而不是尝试使用单个种子执行此操作的特定算法。

first one is 1-360 is the rotation around the y axis 
second one is 1-180 is the deviation from the y axis (wobble) 
third one is 1-<really big number> is the distance from your centre point (homeworld) 
fourth (optional) one is to randomize the radius of the planet 
fifth (optional) is to randomize the colour of the object 

要绘制你的星球,那么它只是一些简单的三角函数在从原点(家园)的3D空间(X,Y,Z)制定出位置。

只要你的种子价值是相同的,你将能够产生一个非常大的行星空间。

如果你想用一个种子来做到这一点,那么使用该种子为随后的所有随机数生成器生成“随机”种子数。

+0

我不清楚的唯一事情是我如何让它产生一定的行星密度?也许只是添加一个数字我可以调整,创造他们之间的“缓冲”或什么? – Befall 2012-03-06 01:02:47

0

我有一个想法,很长一段时间它加载这个页面,我没有看到代表。

你可以开始一个四面体,然后,为指定迭代次数,

  • 随机选择
    • 三角脸,竖起了底座上一个新的四面体更换的脸。

随着完全均匀的随机数分布,这应该近似球体。对于确定性的PRNG,结果应该可以通过使用相同的初始种子来重现。