Переведите статью о определении наличия точки в треугольнике

Общие вопросы о Unity3D

Переведите статью о определении наличия точки в треугольнике

Сообщение KoteKotovK 21 янв 2017, 16:19

Кто знает английский переведите пожалуйста эту статью - http://blackpawn.com/texts/pointinpoly/default.html , очень интересно, но вот знания английского очень низкого уровня, помогите пожалуйста.
KoteKotovK
UNITрон
 
Сообщения: 267
Зарегистрирован: 20 июн 2014, 06:41

Re: Вопрос по переводу интересной темы.

Сообщение samana 21 янв 2017, 16:34

А наверно и нет смысла переводить статью, ведь там просто указаны формулы.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Переведите статью о определении наличия точки в треугольнике

Сообщение ikhtd 21 янв 2017, 17:56

это статья про одного мальчика...
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Переведите статью о определении наличия точки в треугольнике

Сообщение Woolf 22 янв 2017, 13:40

о определении наличия точки в треугольнике

А чо там определять-то? Для любого выпуклого многоугольника точка будет находиться внутри, если при обходе граней по часовой стрелке, точка будет всегда справа для любого отрезка, образованного стороной многоугольника. Как определить лево-право мы уже недавно тут обсуждали. Все, что нужно, это в цикле пробежаться по сторонам.

В более общем случае, при любом направлении обхода, если точка всегда находится с одной стороны для всех векторов-отрезков, значит она внутри.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Переведите статью о определении наличия точки в треугольнике

Сообщение KoteKotovK 22 янв 2017, 14:59

Woolf писал(а):А чо там определять-то? Для любого выпуклого многоугольника точка будет находиться внутри, если при обходе граней по часовой стрелке, точка будет всегда справа для любого отрезка, образованного стороной многоугольника. Как определить лево-право мы уже недавно тут обсуждали. Все, что нужно, это в цикле пробежаться по сторонам.

В более общем случае, при любом направлении обхода, если точка всегда находится с одной стороны для всех векторов-отрезков, значит она внутри.

Спасибо. Я думал все сложнее =)
KoteKotovK
UNITрон
 
Сообщения: 267
Зарегистрирован: 20 июн 2014, 06:41

Re: Переведите статью о определении наличия точки в треугольнике

Сообщение Woolf 22 янв 2017, 17:03

Для 3д не забываем сначала проверить, принадлежит ли вообще точка плоскости треугольника.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Переведите статью о определении наличия точки в треугольнике

Сообщение Shekn 22 янв 2017, 17:57

Там на странице еще другой метод описан. Для точки вычисляются барицентрические координаты, и если обе они положительны и в сумме меньше 1-цы, то точка внутри. Работает только для треугольника, конечно, раз барицентрические координаты. Да и по сложности вычислений не понятно, что сложнее.
https://tugcga.github.io/
Аватара пользователя
Shekn
UNIт
 
Сообщения: 95
Зарегистрирован: 05 фев 2016, 14:20

Re: Переведите статью о определении наличия точки в треугольнике

Сообщение seaman 22 янв 2017, 19:16

Да и по сложности вычислений не понятно, что сложнее.

Ну так посчитайте.
2-й вариант:
6 Кроссов, три Дот, три сравнения, два and. Кросс - 6 умножений, три вычитания. Дот - Три умножения, два сложения.
Итого - 45 умножений, 24 сложения/вычитания, три сравнения, два and
3-й вариант (с барицентрическими кооржинатами):
5 Дот, 6 вычитаний, 8 умножений, одно деление, три сравнения, два and
Итого - 23 умножения, 16 сложений/вычитаний, одно деление, три сравнения, два and
___
Даже если считать, что у современных процессоров умножение/деление почти такое же по скорости как сложение/вычитание, все равно 3-й вариант должен быть значительно выгодней.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11