Трехмерные координаты в файлах стереолитографии 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 треугольника, две нормали одинаковы, а одна не перпендикулярна другим.

Другие вопросы по тегам