Добавлен darkowlom
Как проверить попадает точка в сложную трехмерную фигуру? Интересует сам алгоритм
Принятый ответ
darkowlom, хм, действительно, есть такое. Но тут надо действительно разбивать на баунд боксы
и это поможет, а потом уже уточнять
и это поможет, а потом уже уточнять
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. alexprey
Разбиение сложной фигуры на простые примитивы (кубы и сферы) проверять по простым формулам.
2 вариант.
Брать полигоны, вычислять вектор направления. Проецировать этот вектор на нормаль полгона и если получается отрицательная проекция, значит точка лежит под этим полигоном. Точка будет находится внутри сложной фигуры, если она будет размещаться под всеми пролигонами одновременно
Ред. prog
Если нужно проверить попадание 3D точки в 3D модель, то тогда стоит использовать raytrace (raycast). Большинство движков умеют это делать.
Ред. darkowlom
и это поможет, а потом уже уточнять
или она движется по прямой
или она движется по кривой?
допустима ли погрешность?
Строим паралелипипед , чтобы он полностью вмещал модель(можно по самым далеким от центра фигуры точкам).
Если число пересечений четно - снаружи , нечетно - внутри.
А затем при проверке вхождения очередной точки в поверхность полигона перед этим
проверить, меньше ли Х крайней точки дальнего полигона координаты Х точки луча.
Если так, то полигон остался сзади точки по оси Ох и нет нужды вызывать функцию для проверки вхождения в поверхность данного полигона. А лучше вообще его вышвырнуть из коллекции.