![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 24 Всего: 110 |
предположим, что исследуемая точка - начало координат (иначе, можно поотнимать ее координаты от всех точек - получится около 2n операций -) 1. предварительный расчет: если (y1>0)==(y2>0), выкидываем ребро, иначе идем дальше 2. окончательный расчет: проверяем (x2*y1>x1*y2)==(y1>y2) получаем ответ (есть пересечение или нет) я точно не знаю: последнее условие - это условие пересечения с лучом или непересечения, но это уже детали количества операций (n - количество вершин, m - количество ребер, пересекающих ось x): +: 0 -: 2n *: 2m /: 0 >: 2n+2m ==(для bool): n+m если разбивать на треугольники, то их будет n-2, и для каждого из них нужно будет считать три определителя...а потом еще и делить... P.S. а при чем тут экран и то, помещается ли в него многоугольник? -------------------- qqq |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
А вот что я нашёл: http://nature.web.ru/db/msg.html?mid=1159496&mode=2
Можно ли это использовать? Это сообщение отредактировал(а) Elfet - 2.6.2007, 22:46 |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Я так узнавал "находится ли точка в треугольнике".
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 24 Всего: 110 |
проблема в том, что следствие здесь только в одну сторону т.е. для внешних точек уже нет гарантии, что сумма расстояний до вершин будет больше периметра т.е. получается, что когда сумма расстояний больше периметра, мы знаем, что точка снаружи а когда меньше - непонятно... -------------------- qqq |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Ну по-моему самый нормальный вариант - образно точку соединить отрезками с вершинами квадрата, вычислить длины сторон по координатам точек, найти сумму площадей получившихся треугольников и сравнить ее с площадью квадрата. Если они одинаковы, значи точка в квадрате.
|
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
Дарова! я двоишник
![]()
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 24 Всего: 110 |
ну если рассматривать только те четырёхугольники, которые являются прямоугольниками со сторонами, параллельными осям координат, то, конечно же, решение упрощается... -------------------- qqq |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |