3.4.4. Представление объемных тел.
Трехмерные тела имеют вершины, которые связаны ребрами. Плоские геометрические фигуры, ограниченные этими ребрами, образуют грани.
Разумеется, задание тела начинается с того, что задаются трехмерные координаты всех его вершин. Однако, как и для случая с плоской геометрической фигурой, этого совершенно недостаточно. Необходимо еще задать дополнительное описание. В принципе, здесь есть две возможности. Во первых, можно описать все ребра, связывающие вершины друг с другом, как это делалось для плоской фигуры. Во-вторых, можно попробовать описать все грани тела. Второй путь для практической работы удобнее. Так, он удобнее хотя бы потому, что объемное тело удобно строить как совокупность граней, а описывать грани, как плоские фигуры, мы уже умеем. Не забудем при этом руководствоваться правилом описания сторон каждой грани "против часовой стрелки".
На рис.39 показана пирамида. У нее пять граней и массив описания граней будет иметь, например такой вид:
1,2,2,3,3,1 1,5,5,2,2,1 1,4,4,5,5,1 1,3,3,4,4,1
Рис. 39 Описание граней объемного тела
грань А грань В
- грань С
- грань D
2,5,5,4,4,3,3,2 - грань Е.
Обратите внимание на то, что когда мы говорим о том, что вершины в грани "должны обходиться против часовой стрелки", то полагаем, что мы смотрим на эту грань как бы "снаружи", а не "изнутри". Поэтому если Вам непонятно, как образовался порядок обхода вершин для граней В,С и Е, то посмотрите на них с того направления, которое указано стрелкой.
И еще одно небольшое замечание. Для конкретной программы можно упростить описание граней, если соблюдается условие, что каждая грань представляет выпуклую, связную и замкнутую об-
ласть, ограниченную сторонами. Т.е., например, стороны ограничивают область, а не проходят сквозь нее так, как это происходит в "звезде", показанной на рис 38.
Тогда описание граней той же пирамиды может быть упрощено до следующего (в два раза уменьшается расход памяти):
1.2.3 - грань А 1,5,2 - грань В 1,4,5 грань С
1.3.4 - грань D 2,5,4,3 - грань Е.