2017-02-18 8 views
0

У меня есть тетраэдр, определенный на 4 пункта Xi, Yi, Zi (я = 1 до 4)Проверить, если точка (х0, у0, г0) лежит внутри тетраэдра в Matlab

Для того, чтобы проверить, если в произвольной точке x0, y0, z0 находится внутри тетраэдра, я беру маршрут объема, т.е. заменяю одну из точек на x0, y0, z0 и получаю объем тетраэдра. Я говорю, что если все 4 вычисленных тома оказываются положительными, то он лежит в тетраэдре. Есть ли лучший способ сделать это?

Детали расчета here

ответ

0

Чтобы знать, если точка находится внутри тетраэдра лучший/более надежный путь вычисления на какой стороне каждого из 4-х плоскостей есть, и сравните это с точки, на которую знают быть внутри.

Шаг за шагом:

  1. Вычислить геометрический центр тетраэдра
  2. Вычисление каждого из 4-х плоских уравнений, в виде ax+by+cz+d=0. (т. е. вычислить a, b, c, d из точек).
  3. Центр геометрической пробки тетраэдра в каждом плоском уравнении (x, y, z) и сохраните знак результата (он будет положительным с одной стороны, отрицательный с другой, ноль, если точка лежит в плоскости)
  4. Подключите нужную точку в каждом из уравнений плоскости. Если знак результата одинаков для всех 4 в качестве геометрического центра, то он находится внутри уравнения

 Смежные вопросы

  • Нет связанных вопросов^_^