Вчера я натолкнулся на '1001 * Boids Крэйга Рейнольдса, а затем решил, что я бы попробовал реализовать простую 2D-версию на Java.Я собрал довольно простую установку, основанную на заметках Конрада Паркера .
Однако, я получаю довольно странное (на мой взгляд) поведение.В настоящее время мои буиды достаточно быстро перемещаются в неровную сетку или решетку и продолжают дергаться на месте.Под этим я подразумеваю, что они немного двигаются и вращаются очень часто.
В настоящее время я реализовал:
- Выравнивание
- Сплоченность
- Разделение
- Ограничение скорости
Первоначально мои boids случайным образом распределяются по области экрана (немного отличается от метода Паркера), и все их скорости направлены к центру области экрана (обратите внимание, что случайно инициализированные скорости дают тот же результат).Изменение предельного значения скорости изменяет только то, насколько быстро бойд движется по этому шаблону, а не формирование шаблона.
На мой взгляд, это может быть:
- Следствиемпараметры, которые я использую (сейчас мой код соответствует описанию в псевдокоде Паркера; я еще не пробовал области влияния, определяемые углом и радиусом, как описано Рейнольдсом.)
- Что-то, что мне нужно реализовать, ноЯ не в курсе.
- Что-то я делаю не так.
Ожидаемое поведение будет чем-то более похожим на двумерную версию того, что происходит в апплете на странице boids Рейнольдса, хотя и верносейчас я не реализовал способ отображения boids на экране.
Кто-нибудь сталкивался с этим раньше?Есть идеи по поводу причины и / или как это исправить?Я могу опубликовать .gif рассматриваемого поведения, если это поможет.