@Burk7589

Как восстановить окружность по массиву точек?

Подскажите алгоритм для восстановления окружности по массиву точек и определение центра этой окружности и диаметра или радиуса.
5f59d2e7e96c0369883448.png
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
twobomb
@twobomb
Ну как вариант, находим крайние точки: левую верхнюю, правую верхнюю, правую нижнюю и левую нижнюю.
В итоге получаем прямоугольник и вписываем окружность в этот прямоугольник
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dollar
@dollar
А как они распределены? Если равномерно, или хотя бы симметрично, то сначала ищем центр масс (среднее арифметическое всех координат по X и Y отдельно, ибо "массы" равны), а затем считаем среднее удаление точек от этого центра - это будет радиус. Центром и радиусом задаётся окружность.

Но если не равномерно и не симметрично, то сложно сказать. Например, такой случай:
spoiler
5f59dc800df79221516740.png
Ответ написан
gbg
@gbg
Баянист. Тамада. Услуги.
Почитайте про преобразование Хафа для окружностей
Ответ написан
@TheCalligrapher
Используйте алгоритм Эмо Велла (Emo Welzl) для построения минимальной охватывающей окружности

https://www.cyberforum.ru/geometry/thread1926478.h...
www.stsci.edu/~RAB/Backup%20Oct%2022%202011/f_3_Ca...

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

Так как никаких детальных требований к искомой окружности вы не привели, этот алгоритм будет не лучше и не хуже любых других.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
24 сент. 2020, в 09:09
2000 руб./за проект
24 сент. 2020, в 08:35
50000 руб./за проект
24 сент. 2020, в 08:23
10000 руб./за проект