Однажды я написал программу для развлечения, где я сгенерировал черви, которые перемещались случайным образом. Довольно уверен, что вы можете использовать тот же подход в своем случае, если не ищете слишком сложного. Моя попытка была довольно простой эвристикой. Решение было для 2D, но вы можете легко расширить его до 3D.
Я создал матрицу вероятности, указывающую вероятность того, что рыба [n] будет двигаться в каждом направлении на итерации i + 1, например: 90% для перемещения в одном направлении, 2% для поворота на 45 градусов влево, 2% для поворота на 45 градусов вправо, 1% для поворота на 90 градусов влево или вправо и т. д. Кроме того, вам нужно будет указать, в каком направлении движется ваша рыба. Проценты были в основном решены путем проб и ошибок, но это тривиально.
Если вы хотите гладких движений, вы можете выбрать новую точку, по которой рыба будет двигаться на некоторое расстояние от ее текущего положения, и вычислить траекторию, как кривая Безье в трехмерном пространстве.
Несомненно, вы можете создать случайный путь, но он не будет выглядеть вообще как рыба. Вероятно, вам следует изучить, как рыба плавает и формулирует эмпирический алгоритм. – JoshD
@JoshD Если рыба пьяна, есть много литературы .... –
Эмуляция того, как рыба «думает» - это способ сделать ее действительно правдой, хуже того, вы даже не можете начать с грубой эвристики, пока не узнаете какой «рыбный плавательный путь» * выглядит * как. У вас даже есть способ судить, как вы поживаете? – dmckee