我一直在研究 perlin 脚本,但在创建简单的伪随机值时遇到了问题。
我需要能够从 xy 坐标创建种子值,但 x+y 在重复值方面存在明显问题。而且它们会进入负空间,因此 x^y 不起作用。
很抱歉,如果这个问题已经在其他地方得到了回答,但我不明白或找不到它。
最佳答案
您需要更好地定义问题才能获得最佳答案。
如果您的 x 和 y 值相对较小,您可以将它们放入整数的高位和低位部分(您语言中的种子是整数),例如对于 32 位平台:
int 种子 = x << 16 + y;
如果种子值不允许为负数(我没有完全理解你的问题中“负空间”的含义,无论你指的是地理还是种子值),你可以取绝对值种子。
如果您的意思是坐标可以具有负值,那么您的最佳操作方案取决于您是否希望坐标和其逆坐标具有相同的种子。
关于random - 如何从 xy 坐标生成种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10693111/