Previous | Next --- Slide 8 of 54
Back to Lecture Thumbnails
ChrisZzh

Can anyone give an example of a cross product of 4D vectors in computer graphics applications?

keenan

@ChrisZzh There isn’t traditionally a cross product in 4D for the reason discussed in class: in 4D there isn’t a single line orthogonal to a given pair of vectors. The closest analogue of an n-D cross product, perhaps, is via Clifford algebra, which has seen some (but not much) use in computer graphics.

siliangl

I remember you mentioned that there are infinitely many vectors that are orthogonal to the cross product of two vectors in 4D. However, I find it hard to picture that. How do you define 4D here and why are there infinitely many?

adilets

Apparently the cross product is also well defined for 7 dimensional space.

keenan

@siliangl By "infinitely many" I just mean that in R^4 there is a 1-parameter family of vectors orthogonal to a given pair of (linearly independent) vectors u and v, namely, all unit vectors in the two-dimensional plane orthogonal to both u and v. This set makes a circle in 4D, which can be parameterized by an angle theta. Since there are infinitely many angles, there are infinitely many possibilities.

keenan

@adilets Cool. But as the article says, there are still many different 7-dimensional cross products! So R^3 remains special. :-)

...Sort of. Of course, the other natural way to generalize the cross product is just to introduce an operator in R^n that takes n-1 linearly independent vectors u_1, ..., u_{n-1} as input, and gives you a vector orthogonal to all of them, and whose magnitude is proportional to their volume (determinant). For n=3, this is just the cross product. For general n, this is a special case of the Hodge star operator.

I have a more intuitive writeup about the Hodge star operator in Section 3.1 of these notes.

nrauen

In class you mentioned that Quaternions will be used later in class. Is it used for computing things like cross products and dot products or are they used for higher level vector manipulation?