![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
![]()
Да, но как узнать, находиться ли отрезок справа/слеваот точки?
|
![]() |
![]() |
![]() |
#12 |
Андрей
Форумчанин
Регистрация: 21.11.2006
Сообщений: 457
|
![]()
Это не важно. Проверили справа - если нет, то слева - если и там нет, то вверх и вниз.
ICQ: 5311314
[SIGPIC][/SIGPIC] |
![]() |
![]() |
![]() |
#13 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
![]() Если находится слева, то абсцисса точки меньше абсциссы места пересечения луча и отрезка и наоборот. На всякий случай: абсцисса - это координата по горизонтали, а ордината - по вертикали. ![]() Надо бы вам отдохнуть - похоже на переутомление. ![]() |
|
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
![]()
Понял, отдохну...
![]() А проверку я пытался делать... Вот даже написал функцию проверки, но неправильно, потому что не всегда правильно работает... ![]() Код:
|
![]() |
![]() |
![]() |
#15 | |
Пользователь
Регистрация: 09.02.2007
Сообщений: 32
|
![]()
Вот мой вариант программы:
Цитата:
Пусть дана точка (у которой надо определить место нахождения), количество углов в полигоне и два массива с координатами этих углов (соответственно по x и по y), причём точки в массиве обезательно распологаются друг за другом (т.е. координаты каждой следующей и предыдущей точки обозначают нам соседние углы в полигоне). Тогда определить расположение искомой точки можно следующим образом. Перебираем все координаты наших углов по порядку. По двум соседним углам определяем уравнение прямой проходящей через эти углы. В общем виде через координаты уравнение прямой через точки (x1,y1) и (x2,y2) оно выглядит так: x(y2-y1)+y(x1-x2)-x1y2+x2y1=0 (я его вывел сам, можите проверить). Подставляем в левую часть этого уравнения любой другой угол полигона (кроме двух взятых) и так же подставляем нашу искомую точку в это уравнение. Полученые два результата должны быть обезательно одного знака чтобы точка лежала внутри полигона. Если при подстановки искомой точки в уравнение прямой мы получим 0, то эта точка лежит на границе полигона. Если хотя бы для одной прямой (как бы стенки полигона) не выполняется одно из выше описанных условий, то точка уже сразу лежит вне полигона. Аналитическая геометрия раскрывает свои тайны! ![]()
Time have not meaning, mind - this is main...
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не найдена точка входа. | Черничный | Общие вопросы Delphi | 17 | 23.07.2008 11:54 |
Определить попала ли точка в область? | Iogan Gamba Puti | Общие вопросы Delphi | 7 | 13.05.2008 00:15 |
Принадлежит ли точка (x,y) круговому кольцу... | Sota | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.03.2008 17:03 |
Дана точка A с координ. X и Y, определить... | Cullen | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 30.01.2008 00:22 |
Пренадлежит-ли точка функции? | Conso | Помощь студентам | 4 | 29.01.2008 15:28 |