Назовите свои баллы a, b, c, d. Они образуют тетраэдр. Если тетраэдр не вырожден, то точки - это вершинные точки (крайние точки) их выпуклой оболочки.
Чтобы проверить это, проверьте, если a, b, c образуют невырожденный треугольник. Для этого вычислим нормальный вектор (назовите его n) треугольника (b-a) cross (c-a). Если он равен нулю, то треугольник вырождается, в противном случае это не так. Проверка, если d не находится в плоскости этого треугольника. Это если (d-a) точечный продукт с n равен нулю. Если это так, то тетраэдр вырождается.
Вычислить нормальный вектор для каждого из четырех треугольников тетраэдра. Каждый нормальный вектор вместе с (любой) точкой треугольника описывает полупространство; , то есть все точки на одной стороне плоскости. Пусть n - нормальный вектор, p - точка треугольника.
Точка q называется внутри полупространства, если n dot (q-p) отрицательна.
Проверьте все 4 треугольника, если четвертая точка находится внутри. Если нет, отрегулируйте знак нормального вектора.
Точка находится внутри тетраэдра, если она находится внутри всех 4 полупространств.
Триангуляция ...? –
Не могли бы вы объяснить, что вы подразумеваете под «Мне удалось решить проблему выпуклого корпуса с помощью треугольников»? –
@M_M http://stackoverflow.com/a/2122620/3502949 – Stefan