Comment calculer le volume d'un maillage 3D de l'objet dont la surface est composée de triangles
Je veux calculer le volume d'un maillage 3D d'objet ayant une surface composée de triangles.
- Je n'ai pas le temps de vous donner de plus amples informations, peut-être quelqu'un d'autre cam, mais de prendre un coup d'oeil: amp.ece.cmu.edu/Publication/Cha/icip01_Cha.pdf
- Apparaît redondante avec la question 1410525
Vous devez vous connecter pour publier un commentaire.
La lecture de ce papier, il est en fait assez simple de calcul.
L'astuce consiste à calculer la signé volume d'un tétraèdre - en fonction de votre triangle et couronné à l'origine. Le signe du volume provient de votre triangle est pointé dans la direction de l'origine. (La normale du triangle est lui-même dépendant de l'ordre des sommets, c'est pourquoi vous ne le voyez pas explicitement mentionnés ci-dessous.)
Tout cela se résume à la fonction suivante:
et puis un pilote pour calculer le volume de la maille:
Yip Frank Kruegers réponse fonctionne bien +1 pour l'. Si vous avez vecteur de fonctions disponibles pour vous, vous pouvez utiliser cette trop:
édition .. ajouté impl. pour le Point() et la Croix() si vous n'êtes pas sûr. Plus de Maths libs ont l'un de ces. Si vous êtes en utilisant WPF ils sont mis en œuvre que les méthodes statiques de la classe Vector3D.
La GNU Surface Triangulée de la Bibliothèque peut faire pour vous. Gardez à l'esprit que la surface doit être fermé. Ce n'est pas le cas pour un grand nombre de modèles 3D.
Si vous souhaitez mettre en place vous-même, vous pouvez commencer par prendre un coup d'oeil à leur code.
La méthode ci-dessus est correct pour de "simples" objets (pas d'intersection/chevauchement des triangles) comme des sphères tetrahedras et ainsi de suite. Pour des formes plus complexes, une bonne idée pourrait être de segment de la maille (fermer) et calculer le volume de chaque segment séparément.
Espérons que cette aide.