В Java, каков наилучший способ определить, находится ли точка (из которой у меня много), заданная в 6 измерениях, в той же плоскости, что и другие точки в 6-мерном пространстве? Это ясно, как это сделать в 2D и 3D, но насколько я знаю, некоторые из таких понятий, как кросс-продукт и т.д., Не обобщаются на более высокие размеры (или только на некоторые немногие).
Было бы также полезно найти способ ответить на один и тот же вопрос для точек на линиях в 6D. Более общий, я дал облако более высокой размерной точки, и я хочу определить, находятся ли некоторые из этих точек в одной плоскости.
В N-мерном пространстве точка лежит в той же гиперплоскости, что и N (невырожденная), если объем симплекса, образованный всеми этими (N + 1) точками, равен нулю. Объем симплексов можно было вычислить через определитель
|1 x1 y1 z1 ...|
|1 x2 y2 z2 ...|
V = 1/N! |1 x3 y3 z3 ...|
|1 x4 y4 z4 ...|
|..............|
Обратите внимание, что эта формула соответствует проверке взаимного продукта на коллинеарность в 2D-случае, на смешанную проверку продукта для копланарности в 3D-случае и т.д.
1/N!
срок проверки компланарности.
Классическое уравнение на линии, независимо от размеров, таково:
x/const1 + y/const2 + ... + z/const3 = CONST0
На 2 пункта вы всегда можете найти это уравнение:
(x - x1) / (x1 - x2) + (y - y1) / (y1 - y2) + ... + (z - z1) / (z1 - z2) = 0