View Full Version : cross product in higher dimensions
tbaypaul 11282006, 02:32 PM I'm trying to help the guy with his VD (voronoi delauany) problem, but I am rusty on my cross product in dimensions greater then 3.
Given two vectors u and v in 4 coordinate space. What is the cross product? I have as my result the vector:
u2 * v3  v2 * u3 ,
u3 * v4  v3 * u4 ,
u4 * v1  v4 * u1 and
u1 * v2  v1 * u2
Is this correct?


Maelcum
11282006, 05:13 PM
Take a look at Wikipedia, especially here:
http://en.wikipedia.org/wiki/Cross_product
M
grantimus
11282006, 06:15 PM
[(u2*v3v2*u3)+(u2*v4v2*u4)+(u3*v4v3*u4),
(v3*u4u3*v4)+(u3*v1v3*u1)+(u4*v1v4*u1),
(u2*v4v2*u4)+(v2*u1u2*v1)+(u4*v1v4*u1),
(v2*u3u2*v3)+(v2*u1u2*v1)+(v3*u1u3*v1)]
I don't know if you're using MEL or the API. But, if you're using mel here is a procedure that will help you out:
global proc float[] gt4DCross(float $u[],float $v[]) {
return({($u[1]*$v[2]$v[1]*$u[2])+($u[1]*$v[2]$v[1]*$u[3])+($u[2]*$v[3]$v[2]*$u[3]),
($v[2]*$u[3]$u[2]*$v[3])+($u[2]*$v[0]$v[2]*$u[0])+($u[3]*$v[0]$v[2]*$u[0]),
($u[1]*$v[3]$v[1]*$u[3])+($v[1]*$u[0]$u[1]*$v[0])+($u[3]*$v[0]$v[3]*$u[0]),
($v[1]*$u[2]$u[1]*$v[2])+($v[1]*$u[0]$u[1]*$v[0])+($v[2]*$u[0]$u[2]*$v[0])});
}
tbaypaul
11282006, 07:14 PM
Thanks,
yeah, that proc is exactly what I need.....I knew I was missing terms in each of the coordinates...
CGTalk Moderation
11282006, 07:14 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©20002015, Jelsoft Enterprises Ltd.