Проблема с поведением флокированных боидов

Вчера я наткнулся на Boids Крейга Рейнольдса , и впоследствии решил, что я дам реализацию простой 2D-версии на Java. идти.Я собрал довольно простую установку, основанную на заметках Конрада Паркера .

Однако я получаю довольно странное (на мой взгляд) поведение. В настоящее время мои тела довольно быстро переходят в грубую сетку или решетку и начинают дергаться на месте. Под этим я подразумеваю, что они немного двигаются и вращаются очень часто.

В настоящее время я реализовал:

  1. Выравнивание
  2. Сплоченность
  3. Разделение
  4. Ограничение скорости

Изначально мои боиды распределены случайным образом через область экрана (немного отличается от метода Паркера), и все их скорости направлены к центру области экрана (обратите внимание, что случайно инициализированные скорости дают тот же результат). Изменение предельного значения скорости изменяет только то, как быстро боиды движутся в этот паттерн, но не формирование паттерна.

Насколько я понимаю, это может быть:

  1. Следствием параметров, которые я использую (прямо сейчас мой код такой, как описано в псевдокоде Паркера; я еще не пробовал области влияния, определяемые углом и радиусом, как описано Рейнольдсом.)
  2. Что-то, что мне нужно реализовать, но я не знаю.
  3. Что-то я делаю не так.

Ожидаемое поведение будет больше похоже на двумерную версию того, что происходит в апплете на странице Boids Рейнольдса, хотя прямо сейчас я не реализовал какой-либо способ держите boids на экране.

Кто-нибудь сталкивался с этим раньше? Есть идеи о причине и / или как ее исправить? Я могу опубликовать .gif с описанием рассматриваемого поведения, если это поможет.

8
задан Iskar Jarak 2 June 2011 в 19:36
поделиться