То, что вы описываете, обобщается с использованием определителя.
объект nD, встроенный в пространство nD
Для объектов, использующих все измерения, например, параллелограмм в 2D или параллелепипед в 3D, поместите векторы n
, определяющиестороны (гипер-) параллелепипеда в виде строк матрицы и вычисляют определитель:
2D 3D 4D 5D
|x1 y1| |x1 y1 z1| |x1 y1 z1 w1| (Repeat the same pattern)
|x1 y2| |x2 y2 z2| |x2 y2 z2 w2|
|x3 y3 z3| |x3 y3 z3 w3|
|x4 y4 z4 w4|
Обратите внимание, что полученный (гипер-) объем подписан в зависимости от ориентации векторов. Таким образом, возможно иметь отрицательные объемы.
(n-1) D объект, встроенный в пространство nD
Для объектов, использующих на одно измерение меньше пространства, в котором ониВ прямом эфире, например, параллелограмм в трехмерном пространстве, вы можете использовать перекрестный продукт (который происходит из определителя) или обобщение перекрестного продукта. Например, площадь параллелограмма, встроенного в 3D, определяемая двумя трехмерными векторами (x1,y1,z1)
и (x2,y2,z2)
, рассчитывается из матрицы, содержащей два вектора в виде строк:
[x1 y1 z1]
[x2 y2 z2]
Из этой матрицы просто создайте всекомбинаций подматрицы 2x2, вычислите определитель каждой матрицы и поместите их в вектор как таковой
[|y1 z1|, |z1 x1|, |x1 y1|] = (y1*z2-z1*y1, z1*x2-x1*z2, x1*y2-y1*x2)
[|y2 z2| |z2 x2| |x2 y2|]
Вы получите вектор, а длина этого вектора - это площадь параллелограмма: sqrt((y1*z2-z1*y1)^2 + (z1*x2-x1*z2)^2 + (x1*y2-y1*x2)^2)
.
(Почти) окончательное обобщение
Из этого последнего примера мы можем создать общий рецепт, который работает для любого объекта, встроенного в любое измерение (даВы можете рассчитать объем трехмерного параллелепипеда, встроенного в пространство 17D):
- Поместите все векторы, описывающие объект, как строки (возможно, не квадратной) матрицы.
- Перечислить все возможные комбинации квадратных подматриц.
- Рассчитайте детерминант всех этих подматриц и поместите их в список (порядок не важен, если вам нужен только объем).
- Квадрат эти детерминанты индивидуально.
- Суммируйте их всех.
- Возьмите квадратный корень из результата.
Обратите внимание, что этот последний рецепт дает объем без знака, поскольку вы возводите квадрат в квадрат, а затем берете квадратный корень.
Последнее примечание: Очевидно, что этот ответ является скорее рецептом, чем объяснением почему все эти вычисления работают. Для получения дополнительной информации по этому вопросу я предлагаю вам взглянуть на Внешнюю алгебру , которая представляет собой формализм, использующий произведение клина (обобщение перекрестного произведения) для определения этих гипер-объемы в очень общем виде.