当我在一个需要模拟鱼类运动的项目工作时, 我把鱼放在一个3D环境中,我希望它可以在一条真正的鱼会做的路上游泳。 我想知道是否有任何算法可以产生准随机,类似鱼的路径?
每个人都祝福。答案 0 :(得分:2)
Javascript中的这个fish simulation(可用的源代码)模拟二维鱼的运动;但是,它很容易修改为三维。您应该让系统进化鱼类神经网络大脑,以便查看完整效果或观看页面上发布的视频。
鱼的移动方式与带有两个踏板的水箱类似,其中给出两个速度变量,允许鱼根据速度变量之间的差异旋转或向前移动。给出了一些参数,因此鱼不能过度转动。对于每个时间步长,鱼加速度值由神经网络(通过进化训练)给出每个“胎面”,其使用牛顿法则影响鱼的胎面速度。而不是使用神经网络,你可以做更随机的事情;但是你需要减少鱼可以转到很小的范围。
答案 1 :(得分:2)
我曾经写过一个有趣的程序,我生成了随机移动的蠕虫。如果你不是在寻找太复杂的东西,那么你肯定可以在你的情况下使用相同的方法。我的尝试是一个非常简单的启发式。该解决方案适用于2D,但您可以轻松将其扩展为3D。
我创建了一个概率矩阵,表明鱼[n]在迭代i + 1中每个方向移动的概率,例如:90%用于保持向同一方向移动,2%用于45度转向左边是2%,右边是45度,左边或右边是90度,1%左右。此外,你必须存储鱼当前移动方向的指示。百分比基本上是通过反复试验解决的,但这是微不足道的。
如果你想要平滑的动作,你可以选择鱼将移动到距离当前位置一定距离的新点,并像3D空间中的贝塞尔曲线一样计算轨迹。
答案 2 :(得分:0)
尝试谷歌搜索“植绒算法”。 Bioroids也值得关注。