У меня есть объемная сетка, которая на самом деле является тетраэдрической сеткой. Я хотел бы рассчитать поперечное сечение этой сетки с учетом функции плоскости, говоря z = 0
. Я могу себе представить, что поперечное сечение тетраэдра представляет собой либо треугольник, либо четырехугольник. Для первого случая, треугольника, как только я рассчитаю 3 точки пересечения, я смогу его получить; но во втором случае, как я могу превратить четырехугольник в 2 треугольника? Моя проблема в том, что я не могу определить диагональ четырехугольника.
Как рассчитать сечение тетраэдра
comment
Мне кажется, что вам нужно решить математическую задачу, а не проблему кодирования.
- person mhawke   schedule 24.11.2014
Ответы (2)
Пересечь все ребра тетраэдра плоскостью. Вы получите 3 или 4 точки пересечения.
Если 3 точки, то один треугольник.
Если 4 точки, то они образуют выпуклый четырехугольник. Возьмите любые 3 точки, образующие первый треугольник. Другой треугольник формируется из четвертой точки и двух концов ребра, у которого эта точка находится справа.
В качестве альтернативы (для более общего решения) пометьте точки пересечения индексами граней, попадающих на ребро, и восстановите кольцо меток.
Пример: ребра являются общими для граней AB, CD, DA и BC; тогда это сечение ABCD.
person
Yves Daoust
schedule
24.11.2014
Этот ответ описывает общий алгоритм пересечения объема и плоскости. Он вернет вершины пересечения по порядку, поэтому легко определить диагональ вашего четырехугольника.
person
ryanm
schedule
01.12.2014