Нарисуйте круг из точек

У меня есть несколько агентов (например, 6 или 8), и я хочу выровнять их как формирование круга с помощью алгоритма boids. Глобальные позиции агентов неизвестны, но каждый агент знает позиции других агентов относительно себя. Также агенты могут обновлять позиции. Как я могу выровнять их как круг? Если вам нужна дополнительная информация, пожалуйста, оставьте комментарий.

1 ответ

Решение

Каждый агент может действовать следующим образом:

1) вычислить наименьшие квадраты, подходящие к кругу из набора точек, включающего текущее местоположение этого агента и его 3 ближайших соседей (вам нужно как минимум 4 точки), используя формулы в: http://www.had2know.com/academics/best-fit-circle-least-squares.html

2) спроецируйте текущее местоположение этого агента на вычисляемую окружность наименьших квадратов

и так далее и тому подобное...

У меня нет формальных доказательств того, что это сходится. Вам может потребоваться некоторое "демпфирование", чтобы избежать колебаний.

Другие вопросы по тегам