Трехмерные координаты в файлах стереолитографии ASCII (STLA)
Я прочитал краткое описание файлов STLA (файлы стереолитографии ASCII), но, извините, я не понимаю, как определены грани / треугольники.
Например, в примере для куба:
solid cube_corner
facet normal 0.0 -1.0 0.0
outer loop
vertex 0.0 0.0 0.0
vertex 1.0 0.0 0.0
vertex 0.0 0.0 1.0
endloop
endfacet
facet normal 0.0 0.0 -1.0
outer loop
vertex 0.0 0.0 0.0
vertex 0.0 1.0 0.0
vertex 1.0 0.0 0.0
endloop
endfacet
facet normal 0.0 0.0 -1.0
outer loop
vertex 0.0 0.0 0.0
vertex 0.0 0.0 1.0
vertex 0.0 1.0 0.0
endloop
endfacet
facet normal 0.577 0.577 0.577
outer loop
vertex 1.0 0.0 0.0
vertex 0.0 1.0 0.0
vertex 0.0 0.0 1.0
endloop
endfacet
endsolid
Первая "грань" описывает трехмерный треугольник, не так ли? (0,0,0),(1,0,0),(0,0,1). Тогда зачем использовать вектор нормали (0,-1,0)? В этом примере, каковы будут трехмерные координаты 8 вершин для этого куба?
Спасибо
1 ответ
Нормаль определяет, в какую сторону указывает лицо.
Вы можете рассчитать его из трех точек, составляющих фасет. Выберите один как источник и затем возьмите перекрестное произведение OA и OB (где A и B - две другие вершины). Однако норма, которую вы получите, будет зависеть от того, какую вершину вы выберете в качестве источника, и от того, как вы делаете перекрестное произведение. Если у вас есть определенная норма, вы можете определить правильный "порядок намотки" вершин.
8 вершин куба будут 8 уникальными вершинами во всех гранях.
Тем не менее, это тело не представляет куб, так как есть только 4 треугольника, две нормали одинаковы, а одна не перпендикулярна другим.