23 / 23 / 6
Регистрация: 23.03.2013
Сообщений: 245
|
||||||
1 | ||||||
Пересечение треугольников в 3d19.10.2014, 20:12. Показов 4090. Ответов 6
Метки нет (Все метки)
Вот например 2 треугольника: (для примера)
Как определить пересекаются они или нет. Есть ли готовая функция для этого? (не важно c++ или c#)
0
|
19.10.2014, 20:12 | |
Ответы с готовыми решениями:
6
Пересечение треугольников Пересечение треугольников Пересечение треугольников Определить пересечение треугольников |
19.10.2014, 21:37 | 2 |
Сообщение было отмечено karaulov6 как решение
Решение
Может в опЕнгле или директиксе каком-нибудь есть, хотя не факт. Можно попробовать самому написать. 3 точки не лежащие на одной прямой (а треугольник это подразумевает) однозначно задают плоскость. 2 плоскости либо параллельны, либо пересекаются по прямой, уравнение которой можно получить из уравнений плоскостей. Эта прямая лежит в плоскостях каждого треугольника, можно проверить, пересекает ли она его - если пересекает хотя бы одну из сторон. Если она пересекает оба треугольника, то они пересекаются. Предварительно можно перейти в другую систему координат через сдвиг+поворот, но навскидку особого облегчения расчетов при этом не получится.
0
|
23 / 23 / 6
Регистрация: 23.03.2013
Сообщений: 245
|
|
19.10.2014, 22:32 [ТС] | 3 |
Просто думаю где-нибудь должны использоваться такие функции) гуглил так и не нашел готовой))
0
|
23.10.2014, 08:31 | 5 |
Определить просто. Берете первый треугольник и ищете скалярное произведение векторов проведенных от любой точки первого треугольника к вершинам второго на нормаль к первому треугольнику. Если все произведения имеют один знак значит треугольники не пересекаются. Если для одной вершины знак будет противоположен проделываем ту же операцию, но теперь меняем треугольники местами. Если произведения имеют разные знаки треугольники пересекаются. Если же одного знака - не пересекаются.
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
14.12.2014, 06:08 | 7 |
По этим гипотезам непересекающиеся треугольники
{ (0,0,-1), (0,0,1), (-1,0,0) } и { (1,-1,0), (1,1,0), (2,0,0) } пересекаются. На самом деле к гипотезе _Ivana нужно добавить, чтобы отрезки, по которым прямая пересечения плоскостей пересекает треугольники, имели бы больше одной общей точки.
0
|
14.12.2014, 06:08 | |
14.12.2014, 06:08 | |
Помогаю со студенческими работами здесь
7
Как определить пересечение 2-х треугольников в трехмерном пространстве? Пересечение двух треугольников Пересечение двух треугольников Пересечение двух треугольников Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |