Нарисуйте круг из точек
У меня есть несколько агентов (например, 6 или 8), и я хочу выровнять их как формирование круга с помощью алгоритма boids. Глобальные позиции агентов неизвестны, но каждый агент знает позиции других агентов относительно себя. Также агенты могут обновлять позиции. Как я могу выровнять их как круг? Если вам нужна дополнительная информация, пожалуйста, оставьте комментарий.
1 ответ
Каждый агент может действовать следующим образом:
1) вычислить наименьшие квадраты, подходящие к кругу из набора точек, включающего текущее местоположение этого агента и его 3 ближайших соседей (вам нужно как минимум 4 точки), используя формулы в: http://www.had2know.com/academics/best-fit-circle-least-squares.html
2) спроецируйте текущее местоположение этого агента на вычисляемую окружность наименьших квадратов
и так далее и тому подобное...
У меня нет формальных доказательств того, что это сходится. Вам может потребоваться некоторое "демпфирование", чтобы избежать колебаний.