![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]()
Добрый день. Собственно, из названия темы видно о чем будет идти речь. Вбив сабж в гугле сразу попадаем сюда. Но оформление статьи оставляет желать лучшего. поэтому рекомендую читать тут. На нашем форуме нашел одну "безответную" тему, на других советуют простой перебор. Я не могу сказать, что он меня не устраивает, скорее всего это спортивный интерес. Т.к. мне требуется проверять пересечение квадратов с 4-х, 5-и, 6-и угольниками. Хочется узнать, насколько приведенный мной выше алгоритм улучшит производительность(скажу, что хотелось бы оптимизировать вычисления, используя SSE), в сравнении с простым перебором.
Теперь по алгоритму, я застопорился на формулировке окна полигона. Что это? Данное понятие не дает мне понять смысл действий, зачем перемещать окна? На чем вообще основан этот метод? Дальше задавать вопросы нет смысла так так в общей сути, из-за ступора они будут развернуто спрашивать: как работает алгоритм. Заранее спасибо. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]() Цитата:
Правильно поставленная задача - три четверти решения.
|
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]()
Факт пересечения, только и всего, но, наверное, будут не квадраты с многоугольником, а многоугольник с многоугольником.
Последний раз редактировалось _PROGRAMM_; 15.07.2013 в 11:23. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
Самый простой вариант - искать пересечение сторон. Если присутствует, то и фигуры пересекаются. Можно через перебор проверять (что нерационально при большом количестве сторон) или через сканирование относительно оси.
Т.е. при сканировании создаем сортированный относительно оси список всех вершин обоих многоугольников. 1. для минимальной вершины определяем уравнения двух исходящих сторон. 2. для следующей вершины определяем значения Y прямых в данной точке 3. если второй многоугольник начался, то определяем количество прямых, лежащих выше верхней точки второго многоугольника 4. Если четность этого количества изменилась, то есть к п.7. 5. Если не последняя вершина то к п.2 6. пересечений нет 7. пересечения есть.
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#5 | |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]() Цитата:
Пока не могу определить насколько этот алгоритм эффективнее. |
|
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]() Цитата:
Цитата:
Правильно поставленная задача - три четверти решения.
|
||
![]() |
![]() |
![]() |
#7 | |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пересечение двух многоугольников | Fantom.as | Помощь студентам | 0 | 30.10.2011 14:54 |
Исходник проверки пересечения многоугольников | GoodDA | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 0 | 23.03.2011 22:46 |
Отсечение многоугольников | Kovy | Фриланс | 7 | 26.02.2011 12:36 |
OpenGl рисование многоугольников. | CWD | Помощь студентам | 2 | 21.09.2010 02:56 |
пересечение выпуклых многоугольников | fint_ushami | Помощь студентам | 0 | 05.12.2009 18:19 |