![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 16.09.2017
Сообщений: 3
|
![]()
Здравствуйте! Не направите или не подскажите как реализовать идею. Задача заключается в следующем. Есть множество точек в которое необходимо вписать окружность и определить центр окружности и радиус. Через три точки однозначно можно провести окружность эт ясно, если больше то возникает неоднозначность. Я думал через уравнение окружности как то попытаться решить, но не знаю как отбирать точки и как в них вписать окружности. Помоги кто может плиз
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]() |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 16.09.2017
Сообщений: 3
|
![]()
Да это я понимаю, что это является необходимым условием.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Первый шаг, очевидно, выбрать радиусы. Сначала нужно его ограничить его.
Считаем попарно расстояния м-у всеми точками. Берем минимальное и макс. расстояния. Это будут макс и мин ДИАМЕТРЫ, соотв. радиусы = половины. Далее, берем все возможные радиусы от мин до макс, с каким-то шагом точности. Далее, для каждого такого радиуса из каждой точки строим уравнение окружности c центром в этой точке. Далее ищем пересечения всех окружностей с одинаковым радиусом, и считаем, сколько окружностей пересклось в 1 точке (с какойто точностью 2). Когда пройдены все радиусы, смотрим, из всех сумм, где наибольшее число пересечений в 1 точке. Вот это грубое решение - точка центр, и радиус известен. Далее, можно внести новое ограничение на радиус, с учетом найденого, повысить точности и все повторить. ......ну вот такое на вскидку придумал ) Эт примерно так рисуется маска Батхинова из треугольников циркулем. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Видимо речь о минимальной описанной окружности множества точек. Для начала - интересны только граничные точки, т.е. точки принадлежащие минимальной выпуклой оболочке. Как найти их можно например здесь подсмотреть. Дальше работая только с ними и используя например этот метод находим минимальную описанную окружность. Можно и без первого шага, но тогда скорее всего общее время выполнения будет дольше
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 16.09.2017
Сообщений: 3
|
![]()
Вот имеются точки с известными координатами и необходимо математически построить окружность по ним
|
![]() |
![]() |
![]() |
#7 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Задача решается методом наименьших квадратов, про МНК можно прочитать в книге Каханер,_Моулер,_Наш.-Численные_методы_и_программное_обес печение-Мир(1998)
И второй способ находим центр точек как среднее геометрическое и находим радиус как среднее значение от центра до точек. Или максимальное, если все точки надо вписать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 19.09.2017 в 07:07. |
![]() |
![]() |
![]() |
#8 |
Регистрация: 13.09.2017
Сообщений: 4
|
![]()
попробуйте волновым методом. Есть хорошая книга Башурова, где решаются подобные задачи. Идея такая: каждая точка (красная на Вашем рисунке, с известными координатами) рассматривается как одиночный источник света. С центрами в этих точках строятся окружности. Радиус окружности растет - в пределе получаем точку (или несколько различных точек, так как задача может иметь не одно решение). Посмотрите в инете про волновой метод (метод геометрической оптики)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа по дискретной математике на Делфи | Zaraaa | Помощь студентам | 0 | 20.10.2013 16:29 |
Программа по дискретной математике | Rozario68 | Фриланс | 1 | 14.12.2011 18:35 |
Программа по дискретной математике | Breaknoise | Общие вопросы C/C++ | 6 | 14.09.2011 22:28 |
Программа электронный учебник по математике для средних классов. Основное направление дроби (на Делфи) | Ribnika_90000 | Помощь студентам | 4 | 18.04.2011 20:51 |
Программа по вычислительной математике | TaHe4ka | C++ Builder | 2 | 08.10.2010 23:43 |