Ellipsoid Collision Problems ( C# & XNA )

Started by
-1 comments, last by GMaker0507 16 years, 2 months ago
Ive been having some prolems with my collision detection code between my ellipsoid and a triangle. So far,if i want the ellipsoids center to rest onthe triangle it works fine, however when i try and set it up so the ellipsoids bottom rests on the triangle it doesnt work. I Get The Triangle In eSpace Vector3 ePoint1 = ellipsoid.ConvertToEllipsoidSpace(Triangle[0]); Vector3 ePoint2 = ellipsoid.ConvertToEllipsoidSpace(Triangle[1]); Vector3 ePoint3 = ellipsoid.ConvertToEllipsoidSpace(Triangle[2]); Then i find the triangle's normal using the cross product of two of its edges. Vector3 edge1 = ePoint2 - ePoint1; Vector3 edge2 = ePoint3 - ePoint1; Vector3 TriangleNormal = Vector3.Cross(edge2, edge1); TriangleNormal.Normalize(); I get the ellipsoids position and velocity in eSpace Vector3 eVel= ellipsoid.ConvertToEllipsoidSpace(Velocity); Vector3 ePos1 = ellipsoid.ConvertToEllipsoidSpace(ellipsoid.Position); I find the point in time ( along the velocity vector ) at which the ellipsoid should hit the plane float SignedDistanceToBasePoint=Vector3.Dot(ePos1-ePoint1,TriangleNormal); float T0 =SignedDistanceToBasePoint / Vector3.Dot(TriangleNormal, eVel); I make sure its within a certain range. if ( Math.Abs(T0) < 0 || Math.Abs(T0) > 1) return null; Then i find where the ellipsoid should rest on the plane Vector3 EllipsoidRestingPoint=ePos1+(T0*eVel); EllipsoidRestingPoint = ellipsoid.ConvertToVector3Space(EllipsoidRestingPoint); When i test this, the ellipsoid's center rest on the triangle, however when i try and change Vector3 EllipsoidRestingPoint=ePos1+(T0*eVel); EllipsoidRestingPoint = ellipsoid.ConvertToVector3Space(EllipsoidRestingPoint); to: Vector3 EllipsoidRestingPoint=ePos1+TriangleNormal+(T0*eVel); EllipsoidRestingPoint = ellipsoid.ConvertToVector3Space(EllipsoidRestingPoint); It doesnt work. I figured it should make the ellipsoids bottom rest on the triangle plane, but apparently im wrong. NOTE: I know i didnt check if the point was in the triangle yet,im still getting to that. If that is the problem, tell me.
Checkout my Journal ( Just started ) for info on my game development status: http://www.gamedev.net/blog/965-ninja-gd/

This topic is closed to new replies.

Advertisement