Javascript 带方向的粒子布朗运动
我试图用布朗运动来创建一组随机移动的粒子。 到目前为止,我已经让粒子随机移动,但我不知道如何设置前进方向,使其看起来更自然 我已经尝试使用x轴和y轴的变化来使用atan计算旋转,您可以通过取消注释rotate来看到这一点,但这似乎表现不好 这是这种运动的正确方法吗?谢谢, 这太好了 您的方法是正确的,但实际上应该使用atan2函数。这样就不需要进行任何0检查 atan2函数为您提供一个与正x向量逆时针的角度 (1,0)--> 蜜蜂与此起始角度相差90度,因此必须从该方向减去90度。(根据计算dy和dx的方法,可能需要添加) <>你可以发现方向变化很快,所以你可以考虑把下一个变化限制在一个角度的变化,使角度变化低于某个阈值。这将使运动更加平稳 实际上,我会通过生成一个介于-pi/8和pi/8弧度之间的角度,以及一个随机长度。基本上使用极坐标。然后将此新的随机极轴偏移添加到x和y位置,如Javascript 带方向的粒子布朗运动,javascript,math,artificial-intelligence,raphael,particles,Javascript,Math,Artificial Intelligence,Raphael,Particles,我试图用布朗运动来创建一组随机移动的粒子。 到目前为止,我已经让粒子随机移动,但我不知道如何设置前进方向,使其看起来更自然 我已经尝试使用x轴和y轴的变化来使用atan计算旋转,您可以通过取消注释rotate来看到这一点,但这似乎表现不好 这是这种运动的正确方法吗?谢谢, 这太好了 您的方法是正确的,但实际上应该使用atan2函数。这样就不需要进行任何0检查 atan2函数为您提供一个与正x向量逆时针的角度 (1,0)--> 蜜蜂与此起始角度相差90度,因此必须从该方向减去90度。(根据计算d
newX = currentX + (randomLength * cos(randomAngle + currentAngle)) and
newY = currentY + (randomLength * sin(randomAngle + currentAngle))
如果你使用角度,你也可以得到更自然的效果,比如如果你想让蜜蜂呆在某个区域内,你可以在它们越来越靠近边缘时,迫使蜜蜂偏向该区域的中心
更新:
所以我仔细看了一下。问题在于,您希望.rotate在实际添加到旋转时设置旋转
有两个选项可用于修复此问题
你可以在这里看到解决方案2的作用如果你真的在使用蜜蜂,我只需要一组非常不稳定的蜜蜂,让一个蜂群跟随领头羊。你可以稍微控制几率,这样它就不完全是随机的。比如85%是随机的,15%是最后一个方向之类的。我想这会使它朝着前进的方向发展多亏了me232的帮助,我计算了拉斐尔旋转,但我开始认为布朗运动可能不适合这种情况。使蜜蜂有点不稳定。我早就用你的另一种方法了!谢天谢地,阿加尼确实喜欢他们不规则的动作,看起来他们在嗡嗡作响:)提琴不起作用,因为它缺少拉斐尔js和一幅图像。这里有一个快速更新: