|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dima Marakasov 2:5020/1826.5 30 Mar 2003 15:33:20 To : Mity Usanov Subject : 3угольник и куб --------------------------------------------------------------------------------
29 Mar 03 22:13, you wrote to me:
MU>>> Подскажите пожалуйста, как определить пересекаються или нет
MU>>> треугольник и параллепипед (или как там его) в пространстве..
DM>> Для каждой вершины треугольника проверить, лежит ли она в
DM>> параллелепипеде.
MU> ну а дальше, допустим не лежит, но при этом пересекються?
Звиняй, не подумал :)
Тогда, видимо, придется искать точки пересечения всех ребер треугольника со
всеми гранями бокса.
Точка пересечения прямой и плоскости ищется из системы 3-х линейных уравнений,
дальше проверяем получившуюся точку на принадлежность ребру и грани. Если
параллелепипед ориентирован параллельно осям, принадлежность точки грани
проверяется элиментарно, принадлежность ребру - смотрим по какой оси координаты
вершин ребра не одинаковы, и смотрим, лежит ли координата точки по этой оси
точка между ними. Если бокс не параллелен осям, его (вместе с треугольником)
можно повернуть так, чтобы он стал параллелен, хотя ИМХО, то, что я привел выше,
тут уже получится не оптимально. Думаю, не стоит говорить, что, найдя одно
пересечение, дальше можно не искать - треугольник пересекает бокс.
Другой вариант - найти проекцию бокса на плоскость треугольника и проверять
пересечения отрезков.
Кроме того, мого посоветовать эту ссылочку:
http://www.realtimerendering.com/int/
Сейчас проверить не могу, но, насколько я помню, там были ссылки на алгоритмы
определения пересечения 'всего со всем', что может оказаться полезным.
Dima
--- GoldED+/W32 1.1.4.7
* Origin: We're alive (2:5020/1826.5)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/164703e86e43e.html, оценка из 5, голосов 10
|