![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.10.2010
Сообщений: 3
|
![]()
люди!!! помогите пжлста. 3 недели уже парюсь над задачей..(
Задан отрезок своими концами (х1,у1), (х2,у2) и окружность своими радиусом r и центром (х0,у0). Определить, как расположены они друг относительно друга: отрезок внутри окружности, отрезок вне окружности, отрезок и окружность пересекаются. случай, когда отрезок внутри я рассмотрел. напишите один из случаев когда отрезок вне или пересекает окружность плиз |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 27.08.2010
Сообщений: 95
|
![]()
Отрезок принадлежит внутренности круга <=> когда его концы принадлежат внутренности.
Отрезок пересекает окружность в 1 точке <=> когда 1 конец принадлежат внутренности круга, а 2-ой - не пренадлежит, либо отрезок принадлежит касательной. Отрезок пересекает окружность в 2 точках <=> высота треугольника ABO, где A,B - координаты концов отрезка, а О - координаты центра круга, проведенная из точки О на сторону АВ, меньше R. (Касается, когда высота равна R). В других случаях отрезок не имеет общих точек с кругом. Теперь формулы: Точка A(x,y) принадлежит внутренности <=> sqr(x-x0) + sqr(y-y0) < sqr(R). Высоту определяем через площадь: p=(AB+AO+BO)/2 S=sqrt(p*(p-AB)*(p-AO)*(p-BO)); S=0,5*AB*OH; OH= sqrt(p*(p-AB)*(p-AO)*(p-BO)) / (0,5*AB) Надеюсь, подсказки помогут) Если нет - скажи, я напишу код программы. Но советую всё-таки разобраться в этом! ![]() Последний раз редактировалось vlad_light; 15.10.2010 в 21:01. |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]()
Запишем параметрическое уравнение прямой, проходящей через две заданные точки. Подставим x и y, выраженные через t, в уравнение окружности. Получится квадратное уравнение, решения которого - пересечения прямой и окружности. Остаётся только перебрать разные варианты.
circleXline1.gif Код:
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 15.10.2010
Сообщений: 3
|
![]()
всё, разобрался))) спс всем)
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.10.2010
Сообщений: 130
|
![]()
Такой вариант: Находим уравнение прямой, которая проходит через отрезок и находим расстояние от центра окружности до прямой. Если оно больше радиуса - то отрезок вне окружности, если меньше, то: если расстояние от центра окружности до обоих концов отрезка меньше радиуса, то отрезок внутри, иначе пересекает окружность.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
delphi управление окружностью | tanek | Помощь студентам | 10 | 06.03.2010 20:58 |
Задача по си++ | lubafffka | Помощь студентам | 1 | 03.05.2009 20:42 |
Определить, совпадает ли текст с конечным отрезком ряда 0123456789 | stasig | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 09.12.2008 22:52 |
Кто поможет с "пульсирующей" окружностью??? | Solny6ko YasnoE | Помощь студентам | 11 | 18.05.2007 20:27 |