Berechnen Sie das Volumen des Tetraeders gegeben 4 Punkte
Muss ich berechnen Sie das Volumen eines Tetraeders gegeben, die Koordinaten seiner vier Eckpunkte.
- die Sprache, die Sie tun??
- irrelevant
- Ich werde die Implementierung in PHP, berechnen Sie die Gesamt-Lautstärke ein .STL-Datei en.wikipedia.org/wiki/STL_(file_format)
- Ich dachte, dieser Kerl ist zu finden problem mit code als diese Frage ist einfach. Nur für die Formel.
- Ich werde die Abstimmung zu schließen, diese Frage gehört auf die Mathematik.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen, wenn du 4 Eckpunkte a,b,c,d (3-D-Vektoren).
Nun, das problem kommt auf das schreiben von code, löst Kreuzprodukt und Skalarprodukt von Vektoren. Wenn Sie von python, die Sie verwenden können, NumPy, oder sonst können Sie code schreiben, der auf Ihrem eigenen.
Den Wikipedia-link sollte definitiv helfen Sie. LINK
iDir = (vectA[0] * ( (vectA[1]*vectB[2]) - (vectA[2]*vectB[1]) ) ) jDir = - ( vectA[1] * ( (vectA[0]*vectB[2]) - (vectA[2]*vectB[0]) ) ) kDir = (vectA[2] * ( (vectA[0]*vectB[1]) - (vectA[1]*vectB[0]) ) ) productAB = [iDir, jDir, kDir]
Einer Art zu berechnen das Volumen ist:
Diese umfasst die Bewertung der 4×4-Determinante. Es verallgemeinert schön, um simplices höherer Dimensionen, mit der 6 wird ein spezieller Fall n!, der Faktor von der dimension. Das resultierende Volumen wird orientierte, d.h. können auch negativ sein, abhängig von der Reihenfolge der Punkte. Wenn Sie das nicht wollen, nehmen Sie den absoluten Wert des Ergebnisses.
Wenn Sie eine Mathe-Bibliothek zur Verfügung, die obige Formulierung könnte unter den am einfachsten zu schreiben, und die software kann es von dort nehmen. Wenn nicht, könnten Sie Dinge zu vereinfachen, zunächst durch die Subtraktion der d Koordinaten von eine durch c. Dies ändert nicht die Lautstärke sondern um die Spalte ganz rechts in
(0, 0, 0, 1)
. Als Ergebnis, können Sie berechnen Sie den Wert der matrix einfach als Determinante des oberen linken 3×3 submatrix. Und mit der Gleichungbeenden Sie mit der Formel aus Surya ' s Antwort.
In den Fall, Sie haben keine Koordinaten für die Punkte, aber nur die Entfernungen zwischen Ihnen, schauen Tartaglia die Formel die grösste Teil von essentually eine quadratische version der oben genannten, obwohl Sie nicht so geradlinig, wie es scheint auf den ersten Blick.
Ivan Seidel Beispiel in Python (Antwort ist 1.3333...)
Hier ist der code, in PHP, berechnet das Volumen des Tetraeders gegeben 4 Punkte: