Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 13.10.2009
Сообщений: 11
1

Окружность и 4 точки

22.02.2010, 17:28. Показов 4214. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны 4 точки, с координатами x,y. Необходимо провести окружность так, чтобы расстояние от точек до окружности было одинаковым.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2010, 17:28
Ответы с готовыми решениями:

Построить из данной точки закрашенную окружность с радиусом, равным расстоянию до ближайшей точки
Даны точки. Подсчитать среднее значение координат х и у и соединить полученую точку со всеми...

Найти окружность наименьшей длины, проходящую по крайней мере через 3 исходные точки
Дано N точек на плоскости. Найти окружность наименьшей длины, проходящую по крайней мере через 3...

Построить окружность, проходящее через три точки. Где находиться центр описанной возле треугольника окружность
Построить окружность, проходящее через три точки. Где находиться центр описанной возле треугольника...

Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки.
Имеется n точек на плоскости. Определить номер той, через которую проходит окружность с центром в...

12
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
23.02.2010, 15:26 2
Провести окружность не проблема.
Проблема рассчитать центр и радиус окружности.
0
87 / 66 / 8
Регистрация: 29.09.2009
Сообщений: 425
25.02.2010, 12:10 3
Как я понял, это возможно если:

1. Расстояние между всеми 4 точками попарно одинаковое, т.е они образуют вершины квадрата
2. Точка пересечения диагоналей квадрата является центром окружности.
А в зависимости от радиуса (r) и стороны квадрата (а) вариантов решения бесконечно много...
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
25.02.2010, 12:35 4
Вариантов решения может быть довольно много, вот один из них:
1) Проводим окружность через любые 3 точки из 4-х
2) Вычисляем расстояние от 4-й точки до окружности
3) Изменяем радиус окружности на половину этого расстояния
- чтп

Но куча геморроя с перебором возможных вариантов расположения точек и окружности..
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
02.03.2010, 20:40 5
Не помню как оно там но думаю ото можно сделать для фигуры которую можно вписать в окружность, а для других просто невозможно.
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
03.03.2010, 11:02 6
Господа отвечающие, вы, похоже, не вполне врубаетесь в условие задачи. Расстояние от точки до окружности - это НЕ расстояние до центра окружности. Точка внутри окружности на расстоянии R-d от центра и точка вне окружности на расстоянии R+d от центра - обе находятся на одинаковом расстоянии d от окружности. За счет этого и можно подобрать решение в любом случае, я писал.

Но есть один нюанс: d должно быть меньше R, иначе начинаются проблемы. Вот детальный учет комбинаций взаимного расположения точек делать лень.
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
04.03.2010, 08:17 7
1) Проводим окружность через любые 3 точки из 4-х
А если все 4-е точки лежат на одной прямой ?
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
04.03.2010, 11:17 8
Цитата Сообщение от odip Посмотреть сообщение
А если все 4-е точки лежат на одной прямой ?
Вот тут, похоже, ничего не получится.

Ладно, пробили таки сделать классификацию.

Если начинать возиться с вариантами, то по расположению внутри/снаружи точки делятся либо 3+1 либо 2+2 (случай 4+0 тривиальный - это когда все 4 точки лежат на одной окружности)

3+1 - центр окружности совпадает с центром окружности, проходящей через 3 точки, расстояние под 4-ю подбираем подгоном радиуса
2+2 - центр окружности должен лежать на обоих серединных перпендикулярах, соответственно, в точке их пересечения. Радиус, опять же, подгоняем для совпадения расстояний. Отдельно нужно рассмотреть вариант типа трапеции - тогда два серединных перпендикуляра совпадут. В этом случае, похоже, бесконечно много требуемых окружностей - по одной для любой точки серединного перпендикуляра.

Как видно, случай четырех точек на одной прямой допустим только при специальном расположении точек - когда получается вырожденная трапеция.
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
04.03.2010, 15:25 9
Видимо действовать надо так:
1. По 4 точкам строим 2 отрезка с несовпадающими концами. Для каждой пары отрезков строим по перпендикуляру, проходящему через центр этих отрезков. Точка, в которой эти перпендикуляры пересекутся и будет являться искомым центром окружности.
Если построенные перпендикуляры не пересеклись, тогда выбираем другую комбинацию точек. По крайней мере одна из комбинаций обязательно даст такие перпендикуляры, которые пересеутся. Т. е., как я понимаю - для любых 4 точек на плоскости обязательно существует окружность относительно которой эти точки равноудалены. Хотя нет, может такая окружность существует не всегда... Да точно - не всегда - в случае, когда все точки лежат на одной прямой - в этом случае радиус искомой окружности равен бесконечности. Значит в этом случае прога должна сообщить, что решения нет. В остальных случаях искомая окружность существует. Видимо так...
2. Второй этап - это определение радиуса. Здесь надо ещё подумать...
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
04.03.2010, 16:45 10
Цитата Сообщение от Mawrat Посмотреть сообщение
2. Второй этап - это определение радиуса. Здесь надо ещё подумать...
Тут думать особенно нечего. Найденный центр обладает свойством: в четверке расстояний от него до четырех разных точек - не более 2-х различных. Соответственно, в тривиальном случае, когда расстояние только одно (все 4 точки лежат на одной окружности) можно выбрать любой радиус окружности, а когда расстояний 2 - нужно в качестве радиуса взять их среднее арифметическое.

Добавлено через 1 минуту
И выбросьте условие несовпадающих концов отрезков - отсекаете решения класса 3+1
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
04.03.2010, 17:58 11
Цитата Сообщение от Black Fregat Посмотреть сообщение
Тут думать особенно нечего. Найденный центр обладает свойством: в четверке расстояний от него до четырех разных точек - не более 2-х различных.
Согласен. Т. е. достаточно выбрать по одной точке от каждого отрезка и замерить их расстояние до найденного центра окружности. Среднее арифметическое этих двух расстояний - это и будет радиус искомой окружности.
Цитата Сообщение от Black Fregat Посмотреть сообщение
И выбросьте условие несовпадающих концов отрезков - отсекаете решения класса 3+1
Здесь вот какие соображения возникли. По идее решения отличные от 2+2 можно вообще отбросить. Т. е. мне думается, что любую комбинацию всегда можно свести к 2+2. Это потому что для 4 точек, удовлетворяющих условию окружностей может быть несколько. Например, предположим что имеется решение для разбиения 3+1 - т. е. мы нашли такую окружность и высчитали её центр и радиус. Но при этом можно разделить точки и по правилу 2+2 - в этом случае мы тоже найдём окружность, удовлетворяющую условию, но имеющую центр в другой точке. И её радиус тоже скорее всего будет другим. Таким образом, если мы будем всегда пользоваться разбиением 2+2 - тогда мы сократим число переборов и несколько упростим задачу.
Поясню - я под 2+2 понимаю возможно немного другую ситуацию. Т. е. например, имеем 4 точки: А, Б, В, Г. Предположим мы нашли решение при разбиении 2+2 такого вида: (А, Б), (В, Г). Но это не означает, что пары (А, Б) и (В, Г) разделены между собой окружностью. Вожможно, что окружность отсекает друг от друга точки так: (А, Г) и (Б, В). А указание пар: (А, Б) и (В, Г) говорит лишь о том, что мы взяли 2 отрезка АБ и ВГ и через их срединные перпендикуляры нашли центр окружности. Вот именно в таком понимании я представляю разбиение 2+2.
Ну в общем, идейная часть задачи видимо уже достаточно ясна. И можно попробовать что-нибудь напрограммировать.
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
04.03.2010, 20:28 12
Цитата Сообщение от Mawrat Посмотреть сообщение
Это потому что для 4 точек, удовлетворяющих условию окружностей может быть несколько. Например, предположим что имеется решение для разбиения 3+1 - т. е. мы нашли такую окружность и высчитали её центр и радиус. Но при этом можно разделить точки и по правилу 2+2 - в этом случае мы тоже найдём окружность, удовлетворяющую условию, но имеющую центр в другой точке. И её радиус тоже скорее всего будет другим. Таким образом, если мы будем всегда пользоваться разбиением 2+2 - тогда мы сократим число переборов и несколько упростим задачу.
Вероятно, да. Просто меня учили искать все возможные решения. но если этого не требуется, то согласен.

Цитата Сообщение от Mawrat Посмотреть сообщение
Предположим мы нашли решение при разбиении 2+2 такого вида: (А, Б), (В, Г). Но это не означает, что пары (А, Б) и (В, Г) разделены между собой окружностью. Вожможно, что окружность отсекает друг от друга точки так: (А, Г) и (Б, В).
Вот такого быть не может. Если центр окружности лежит на серединном перпендикуляре к (А, Б), то А и Б всегда будут по одну сторону окружности, так как до них одинаковое расстояние
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
04.03.2010, 20:45 13
Цитата Сообщение от Black Fregat Посмотреть сообщение
Вот такого быть не может. Если центр окружности лежит на серединном перпендикуляре к (А, Б), то А и Б всегда будут по одну сторону окружности, так как до них одинаковое расстояние
Точно, ты прав.
0
04.03.2010, 20:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2010, 20:45
Помогаю со студенческими работами здесь

Окружность - координаты точки
У меня есть круг радиусом 100 пикселей, x,y центра = 100, 100. По длине круга двигается точка...

Войдут ли точки в окружность?
Здравствуйте! Есть система координат. Есть координаты 7 точек (или другое количество точек может...

Попадание точки в эллипс (окружность)
Интересует как возможно реализовать на языке Си попадание точки с произвольными координатами в...

Задача на попадание точки в окружность
Нужно написать программу на с++ Ввод координат x и y с клавиатуры точка с координатами должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru