Всем доброго дня!
Как известно, в результате векторного произведения векторов получается вектор, который перпендикулярен двум другим векторам, участвующих в произведении.

Приведённый выше рисунок характерен для трёхмерных векторов. И рассчитывается новый вектор следующим образом:
Vector3 Vector3Cross(const Vector3& _vector1,const Vector3& _vector2) { Vector3 vector( _vector1); vector.x=_vector1.y*_vector2.z-_vector1.z*_vector2.y; vector.y=_vector1.z*_vector2.x-_vector1.x*_vector2.z; vector.z=_vector1.x*_vector2.y-_vector1.y*_vector2.x; return vector; }
В случае двухмерного вектора недопустима операция векторного произведения, так как в двухмерном пространстве не может быть вектора, который был бы одновременно перпендикулярен двум другим векторам, с оглаской на то, что эти два других вектора не параллельны.
А вот в случае четырёхмерного вектора, я не соображу как произвести это преобразование:
Vector4 Vector4Cross(const Vector4& _vector1,const Vector4& _vector2) { Vector4 vector( _vector1); vector.x=... // Как?; vector.y=... // Как?; vector.z=... // Как?; vector.w=... // Как?; return vector; }
s3dworld
> А вот в случае четырёхмерного вектора, я не соображу как произвести это
> преобразование:
там результатом будет плоскость, а не вектор
для 4 мерного вектора считай векторное произведение по первым 3 координатам не учитывая четвертую
s3dworld
а для каких целей в программировании нужно векторное произведение 4-мерных векторов?
s3dworld
Всё очевидно, если знать, что такое детерминант матрицы и как его считать: http://en.wikipedia.org/wiki/Cross_product#Matrix_notation
winky
Для познавательных. Я никак не могу себе представить в мозгу что такое 4-мерное пространство.
Skyblade
Нахождение детерминанта матриц -1 -2 -3 -4 порядка уже реализовал.
Формула будет вот такая (прошу прощения за скрин, быстрее набрать не знал как)
l заменяем на w
Skyblade
Если честно, то не понял что ты привёл, матрицы....
s3dworld
> Если честно, то не понял что ты привёл, матрицы....
Да, это матрицы.
Вот исправленный вариант, ошибся со знаками:

s3dworld
> Нахождение детерминанта матриц -1 -2 -3 -4 порядка уже реализовал.
То есть нужно найти 4 детерминанта матриц 3 порядка.
Чтобы стало совсем понятно, приведу такой рисунок:

Skyblade
Есть маленькая загвоздочка - у тебя в формуле c (и z) - это что такое? Третий вектор? А векторное произведение-то для двух считается.
Wraith
> Есть маленькая загвоздочка - у тебя в формуле c (и z) - это что такое? Третий
> вектор? А векторное произведение-то для двух считается.
Просто так обобщить определение векторного произведения на четырёхмерное пространство для двух векторов не получится (кроме семимерного пространства http://en.wikipedia.org/wiki/Seven_dimensional_cross_product). Я нашёл интересную статью, где говорится, почему это так и как это можно обойти, если ввести понятие 'искусственного' векторного произведения (но даже в этом случае в результате перемножения получится не 1, а восемь четырёхмерных векторов, каждый из котрых с одинаковым успехом можно брать как искомый) http://www.mathpages.com/home/kmath069.htm
Pushkoff
> там результатом будет плоскость, а не вектор
Если умножать два вектора, то да. Если три, то будет вектор.
winky
> а для каких целей в программировании нужно векторное произведение 4-мерных векторов?
Ну вот в gameboost-е один чувак реализовал его, можно посмотреть как там устроено. Когда я тоже спросил зачем это, он как-то невнятно ответил, что может быть где-то нужна и что вообще, мол, отвали, не зря же делал.
>(но даже в этом случае в результате перемножения получится не 1, а восемь четырёхмерных векторов, каждый из котрых с одинаковым успехом можно брать как искомый)
Да читерство же. С тремя векторами каждый дурак умеет тензорам индексы дрючить! Так можно сделать отображение не только в V4, но и во всякие хитрожопые 4х4 матрицы.
Давайте лучше пожелаем автору не курить траву на ночь.
s3dworld
> А вот в случае четырёхмерного вектора, я не соображу как произвести это
> преобразование:
Векторное произведение двух векторов определено только в 3D и 7D. Увы.
Спасибо всем! Тему закрывать не буду, вдруг кто-то хочет что-то добавить, уточнить или посоветовать.
Тема в архиве.