kid-programmer
@kid-programmer

Как подсчитать объем?

Есть файл .stl , в нем содержится информация о трехмерной модели, как подсчитать обьем? есть ли какая либа для работы с таким файлами (желательно на js или C#). В 3d вообще не разбираюсь. Буду благодарен за любую информацию по теме.
solid cube
   facet normal 0 0 0
     outer loop
       vertex 0 0 0
       vertex 0 1 0
       vertex 1 1 0
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 0
       vertex 1 1 0
       vertex 1 0 0
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 0
       vertex 0 0 1
       vertex 0 1 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 0
       vertex 0 1 1
       vertex 0 1 0
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 0
       vertex 1 0 0
       vertex 1 0 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 0
       vertex 1 0 1
       vertex 0 0 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 1
       vertex 1 0 1
       vertex 1 1 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 0 1
       vertex 1 1 1
       vertex 0 1 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 1 0 0
       vertex 1 1 0
       vertex 1 1 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 1 0 0
       vertex 1 1 1
       vertex 1 0 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 1 0
       vertex 0 1 1
       vertex 1 1 1
     endloop
   endfacet
   facet normal 0 0 0
     outer loop
       vertex 0 1 0
       vertex 1 1 1
       vertex 1 1 0
     endloop
   endfacet
 endsolid cube
  • Вопрос задан
  • 2633 просмотра
Решения вопроса 1
Mrrl
@Mrrl
Заводчик кардиганов
Достаточно для каждой грани
vertex x1 y1 z1
vertex x2 y2 z2
vertex x3 y3 z3
посчитать величину Vj=(x1*(y2*z3-y3*z2)+x2*(y3*z1-y1*z3)+x3*(y1*z2-y2*z1))/6, и найти сумму этих величин (часть из них будет отрицательной, но это не страшно). Для замкнутой модели она и будет искомым объёмом.

Работать проще с бинарным STL - там не нужно тратить силы на синтаксический разбор.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Faraday
@Faraday
Если известны вершины, то можно посчитать объем выпуклой оболочки. Это можно сделать вручную, или это умеет Wolfram Matematica.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы