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 - грань Е.