Один из способов вычислить этот объем таков:
1 [ax bx cx dx]
V = --- det [ay by cy dy]
6 [az bz cz dz]
[ 1 1 1 1]
Это включает в себя оценку определителя 4 × 4. Он хорошо обобщается на симплексы более высоких измерений, причем 6 является частным случаем n! , факториала измерения. Результирующий объем будет ориентирован , то есть может быть отрицательным в зависимости от порядка точек. Если вы этого не хотите, возьмите абсолютное значение результата.
Если у вас есть математическая библиотека под рукой, приведенная выше формулировка может оказаться одной из самых простых для записи, и программное обеспечение может ее взять. Если нет, вы могли бы сначала упростить задачу, вычтя координаты d из a через c . Это не изменит громкость, но превратит самый правый столбец в (0, 0, 0, 1)
. В результате вы можете вычислить значение матрицы просто как определитель верхней левой подматрицы 3 × 3. И используя уравнение
дет (а, б, в) = а · (б × в)
вы получите формулу из ответа Сурьи .
В случае, если у вас нет координат для точек, а есть только расстояния между ними, посмотрите на Формула Тарталья , которая по сути является квадратичной версией вышеупомянутого, хотя и не так прямолинейна, как казалось бы на первый взгляд.