R
double getDeterminante(int aa, int ab, int ac, int ba, int bb, int bc, int ca, int cb, int cc)
{
return aa*(bb*cc-cb*bc)-ab*(ba*cc-ca*bc)-ac*(ba*cb-ca*bb);
}
... Point3D a = triangle.point1;
Point3D Eb = triangle.point2-a;
Point3D Ec = triangle.point3-a;
Point3D k = a-startPoint;
double detT = getDeterminante(-Eb.x, -Ec.x, k.x, -Eb.y, -Ec.y, k.y, -Eb.z, -Ec.z, k.z);
double detA = getDeterminante(-Eb.x, -Ec.x, direction.x, -Eb.y, -Ec.y, direction.y, -Eb.z, -Ec.z, direction.z);
double detB = getDeterminante(k.x, -Ec.x, direction.x, k.y, -Ec.y, direction.y, k.z, -Ec.z, direction.z);
double detC = getDeterminante(-Eb.x, k.x, direction.x, -Eb.y, k.y, direction.y, -Eb.z, k.z, direction.z);
...
ist das absicht dass du int als parameter fuer die determinante nutzt?
1. es kann bei der menge an multiplikationen schnell einen voerflow geben
2. sind die eingangsdaten echt int oder vielleicht float?