Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为物理实现随机性(如在混合器中)_Java_Game Physics_Physics_Blender - Fatal编程技术网

Java 为物理实现随机性(如在混合器中)

Java 为物理实现随机性(如在混合器中),java,game-physics,physics,blender,Java,Game Physics,Physics,Blender,作为一个例子,我指的是Blender的粒子碰撞系统,在这里可以将粒子阻尼的随机性设置为0.0到1.0之间。 我现在的问题是:它到底是如何工作的?是的,会有一个介于0.0和1.0之间的随机数,但它是如何应用于阻尼系数的?我想用Java创建一些类似的东西,因此我想完全理解其背后的计算。随机因子,概率p和计算是否类似于高斯分布? 作为一个应用示例:我想随机化向量的方向 vector.y+=1;向量y+=2;向量z+=3;vector.scale(prevLength/vector.length) 然而

作为一个例子,我指的是Blender的粒子碰撞系统,在这里可以将粒子阻尼的随机性设置为0.0到1.0之间。 我现在的问题是:它到底是如何工作的?是的,会有一个介于0.0和1.0之间的随机数,但它是如何应用于阻尼系数的?我想用Java创建一些类似的东西,因此我想完全理解其背后的计算。随机因子,概率p和计算是否类似于高斯分布? 作为一个应用示例:我想随机化向量的方向

vector.y+=1;向量y+=2;向量z+=3;vector.scale(prevLength/vector.length)


然而,所有的向量分量都变为零,这很不可能,但也不是不可能。显然,这不是正确的解决方案。

我找到了阻尼的答案

public Vector3f damping(Vector3f vector) 
{
    float random = (float) (this.randomDamp*(Math.random()*2-1));
    float clampedValue = Math.max(0, Math.min(1, (1-damp)+random)); //clamp between 0 and 1
    vector.scale(clampedValue);
    return vector;
}

看起来blender只是将随机数相加,因此因子为0.5,随机因子为1,最终因子将在-0.5(0)和1.5(1)之间变化。

听起来更像是一个数学问题。事实上,这听起来像是你应该在mh上问的问题,也许。。。另一方面,我的目标是用java实现它……为什么它是封闭的?我要的是在因子上应用随机性的理论。在什么意义上它不够集中?我没有投票结束,但可能是因为“在因子上应用随机性的理论”不是一个特定的编程问题。嗨,如果你需要理论方面的帮助,不应该在堆栈溢出问题上问这个问题(数学可能是更好的地方?)。如果您对Java实现或Java代码中的某些特定问题有疑问,请使用代码示例更新您的问题,以了解如何重现这些问题,我们将帮助您。