Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ПРОГРАММИРОВАНИЕ ГЕОМЕТРИИ  (Прочитано 8341 раз)
0 Пользователей и 1 Гость смотрят эту тему.
gogo12
Читатель

ru
Offline Offline

« : 16-09-2017 20:26 » 

Здравствуйте! Не направите или не подскажите как реализовать идею. Задача заключается в следующем. Есть множество точек в которое необходимо вписать окружность и определить центр окружности и радиус. Через три точки однозначно можно провести окружность эт ясно, если больше то возникает неоднозначность. Я думал через уравнение окружности как-то попытаться решить, но не знаю как отбирать точки и как в них вписать окружности. Помоги кто может пожалуйста
Записан
Aether
Специалист

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 16-09-2017 21:41 » 

Ну так Вы себе же и ответили: для определения окружности необходимо взять лишь три любые точки из множества данной окружности (Но не по любым трём точкам вообще можно построить окружность!). Если в силу разных причин, например, конечной точности, множество лишь примерно образует окружность, то встаёт вопрос задать ещё один параметр, например, допуск на радиус искомой окружности. Или же построить задачу как-то иначе, например:

Дано: множество точек на плоскости, заданных координатами X и Y.
Найти: две окружности минимального радиуса R1 и R2, имеющие единый центр и способные вместить в образующуюся между ними разностную кольцевую область всё заданное множество точек.

Первое, что приходит на ум - это решить задачу каким-то перебором, то есть сначала найти множество возможных окружностей, образованных различными комбинациями элементов множества. Тем не менее, с ростом веса заданного множества, задача станет непосильной даже для мощной системы. Возможно есть более интересный математический подход.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 17-09-2017 06:48 » new

gogo12, как-то для диплома жены я делал программу, где моделировалось сверление отверстия каким-то особым треугольным сверлом. Там стояла подобная задача - для определения точности сверления. У меня тогда под рукой был только эксель, я в нём решал примерно так:

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

Другой вариант - математический, его не помню. Составлялась некая система уравнений с участием всех точек
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines