Leider habe ich nicht so viel Ahnung, aber vieleicht gibt es ja wer, der mir helfen kann.
Ich habe ein Viereck und ein Punkt in einer 3D Matrix.
Ich benenne die Vektoren einfach mal:
A: Viereck unten links
B: Viereck oben links
C: Viereck unten rechts
D: Viereck oben rechts
P: Vektor des Punktes
Ich möchte nun aus diesen Vektoren den Abstand T von P zum Viereck errechnen.
Zusätzlich muss ich wissen, wie weit P vom linken Rand (AB) und vom rechten Rand (CD) relativ entfernt ist und wie weit P vom Rand oben (BD) und vom Rand unten (AC) relativ entfernt ist.
Als erstes habe ich mich darüber Informiert, wie man eine Kollisionserkennung bei dreiecken macht. Dazu habe ich mir dieses Tutorial angesehen:

Dort bin ich aber an der Erklärung, wie man t berechnet.
Hier meine Rechnung:
Code:
V2: X: 150 Y: 50 Z: 50 V1: X: 100 Y: 100 Z: 100 V3: X: 200 Y: 150 Z: 150 face normal = (V2 - V1) x (V3 - V1) X: 5000 = (150 - 100) x (200 - 100) Y: -2500 = (50 - 100) x (150 - 100) Z: -2500 = (50 - 100) x (150 - 100) triPoint = (V1 + V2 + V3) / 3 X: 150 = (100 + 150 + 200) / 3 Y: 100 = (100 + 50 + 150) / 3 Z: 100 = (100 + 50 + 150) / 3 0 = (faceNormal.x * triPoint.x) + (faceNormal.y * triPoint.y) + (faceNormal.z * triPoint.z) + D 0 = (5000 * 150) + (-2500 * 100) + (-2500 * 100) + D D = -((faceNormal.x * triPoint.x) - (faceNormal.y * triPoint.y) - (faceNormal.z * triPoint.z)) -250000 = -((5000 * 150) + (-2500 * 100) + (-2500 * 100)) V1(x1, y1, z1) * t == V2(x2, y2, z2) * (1 - t) t = -(A*x2 + B*y2 + C*z2 + D) / (A*(x1-x2) + B*(y1-y2) + C*(z1-z2))
Kann mir wer die Lösung zeigen, einen anderen Ansatz oder ein anderes Tutorial empfehlen oder sonst irgendwie helfen?






