Wie kann ich aus einer STL-Datei das Volumena raus lesen/berechnen?

1 Antwort

Siehe:

https://stackoverflow.com/questions/1838401/general-formula-to-calculate-polyhedron-volume

Das scheint genauso zu finktionieren, wie die Flächenberechnung eines geschlossenen Polygonzugs.

Du wählst schlicht einen Punkt und bildest dann für jedes dreieckige Face der Mesh ein Tetraeder,d essen Volumen du berechnest. Diese Volumen addierst du dann auf.(Dabei muss das Vorzeichen der Volumenberechnungen unverändert bleiben.)

Das funktioniert, sofern deine Faces alle korrekt ausgerichtet sind, als die vertices dieser entsprechend so angegeben werden, dass diese auf einer Fläche der überall gegen bzw. im Uhrzeigersinn gelesen werden können.

Folgende Seite schlägt noch einen anderen Algorithmus vor, der auch mit nicht-konvexen meshes finktionieren soll:

https://math.stackexchange.com/questions/803076/how-to-calculate-volume-of-non-convex-polyhedron

Ich bin mir nicht sicher, inwieweit dei Algoritmen äquivalent sind oder für welche Meshes sie tatsächlich funktionieren.

Der Algorithmus,d er im wzeiten Link genannt wurde, lässt sich auf jeden falla uch anderswo finden:

https://wwwf.imperial.ac.uk/~rn/centroid.pdf

Siehe auch:

https://wrf.ecse.rpi.edu//Research/Short_Notes/volume.html

Woher ich das weiß:Recherche