Шаг 57.
Основы компьютерной графики... . Модели описания поверхностей. Векторная полигональная модель. Первое представление

    На этом шаге мы рассмотрим первый способ представления такой модели.

    Обсудим структуры данных, которые используются в векторной полигональной модели. В качестве примера объекта будет куб. Рассмотрим, как можно организовать описание такого объекта в структурах данных.

    Первый способ. Сохраняем все грани в отдельности (рисунок 1).


Рис.1. Первый способ описания куба

  Грань А = {(xА0, yА0, zА0), (xА1, yА1, zА1), (xА2, yА2, zА2), (xА3, yА3, zА3)}
  Грань В = {(xВ0, yВ0, zВ0), (xВ1, yВ1, zВ1), (xВ2, yВ2, zВ2), (xВ3, yВ3, zВ3)}
  Грань С = {(xС0, yC0, zC0), (xC1, yC1, zC1), (xC2, yC2, zC2), (xC3, yC3, zC3)}
  Грань D = {(xD0, yD0, zD0), (xD1, yD1, zD1), (xD2, yD2, zD2), (xD3, yD3, zD3)}
  Грань Е = {(xЕ0, yЕ0, zЕ0), (xЕ1, yЕ1, zЕ1), (xЕ2, yЕ2, zЕ2), (xЕ3, yЕ3, zЕ3)}
  Грань F = {(xF0, yF0, zF0), (xF1, yF1, zF1), (xF2, yF2, zF2), (xF3, yF3, zF3)}

    Схематично это изобразим на рисунке 2.


Рис.2. Отдельные грани

    В компьютерной программе такой способ описания объекта можно реализовать разнообразно. Например, для каждой грани открыть в памяти отдельный массив. Можно все грани записывать в один массив - вектор.

    А можно использовать классы, как для описания отдельных граней, так и объектов в целом. Можно создавать структуры, которые объединяют тройки (x, y, z), или сохранять координаты отдельно. В значительной мере это относится уже к компетенции программиста, зависит от его вкуса. Принципиально это мало что изменяет - так или иначе в памяти необходимо сохранять координаты вершин граней плюс некоторую информацию в качестве накладных затрат.

    Рассчитаем объем памяти, необходимый для описания куба следующим образом:

  П1 = 6 х 4 х 3 х Рв,
где Рв - разрядность чисел, необходимая для представления координат.

    Шесть граней здесь описываются 24 вершинами. Такое представление избыточно - каждая вершина записана трижды. Не учитывается то, что у граней есть общие вершины.

    На следующем шаге мы рассмотрим второй способ представления этой модели.




Предыдущий шаг Содержание Следующий шаг