Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методы 3D-графики.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
299.01 Кб
Скачать

1.5 Равномерная сетка

Эта модель описывает координаты отдельных точек поверхности следующим способом (рис. 1.12). Каждому узлу сетки с индексами(i,j)приписывается значение высоты zij. Индексам (i, j) отвечают определенные значения координат (х, у). Расстояние между узлами одинаковое - dx по оси х и dy по оси у.

Фактически, равномерная сетка модель описания поверхности, представляющая собой матрицу, каждый элемент которой сохраняет значение высоты.

Не каждая поверхность может быть представлена этой моделью. Если в каждом узле записывается только одно значение высоты, то это означает, что поверхность описывается однозначной функцией z = f (х, у). Иначе говоря, это такая поверхность, которую любая вертикаль пересекает только один раз. Не могут моделироваться также вертикальные грани. Необходимо заметить, что для сетки не обязательно использовать только декартовы координаты. Например, для того чтобы описать поверхность шара однозначной функцией, можно использовать полярные координаты. Равномерная сетка часто используется для описания рельефа земной поверхности.

Рассмотрим, как можно вычислить значения высоты для любой точки внутри границ сетки. Пусть ее координаты равны (х, у). Надо найти соответствующее значение z. Решением такой задачи является интерполяция значений координат z ближайших узлов (рис. 1.13).

Сначала необходимо вычислить индексы j и i одного из узлов:

где ]а[ _ целая часть числа а, то есть наибольшее целое, которое не превышает а.

Далее используем, например, линейную интерполяцию. Для этого сначала найдем значения z в точках А и В. Из пропорции:

учитывая, что xj+1-xj=dx, получим:

zA=zij+ (х –xj)(zi,j+1zij)/dx.

Аналогично найдем zB:

ZB=zi+1,j+ (х –xj)(zi+1,j+1 zi+1,j)/dx.

Теперь можно найти нужное значение z, поделив отрезок АВ пропорционально значению у:

Получим:

z=zA +(y-yi)(zB-zA)/dy

Положительные черты равномерной сетки:

  • простота описания поверхностей;

  • возможность быстро узнать высоту любой точки поверхности простой интерполяцией.

Недостатки равномерной сетки:

  • поверхности, которые соответствуют неоднозначной функции высоты в узлах сетки, не могут моделироваться;

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

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

1.6. Неравномерная сетка. Изолинии

Неравномерной сеткой назовем модель описания поверхности в виде множества отдельных точек {(х0, у0, z0), (x1, y1,z1), ..., (xn, yn, zn)}, принадлежащих поверхности. Эти точки могут быть получены, например, в результате измерений поверхности какого-нибудь объекта с помощью определенного оборудования.

Такую модель можно считать обобщением для некоторых рассмотренных нами моделей. Например, векторная полигональная модель и равномерная сетка могут считаться разновидностями неравномерной сетки. Эти разновидности мы рассмотрели в отдельности, так как они играют важную роль для решения задач КГ. А вообще, может существовать много вариантов классификации способов описания поверхностей. Следует учитывать определенную условность нашего перечня моделей поверхностей, последовательность перечисления таких моделей может быть и другой.

Рассмотрим модель поверхности в виде множества точечных значений, логически никак не связанных между собой. Неравномерность задания опорных точек усложняет определение координат для других точек поверхности, которые не совпадают с опорными точками. Нужны специальные методы пространственной интерполяции. Так, например, можно поставить такую задачу  по известным координатам (х, у) вычислить значения координаты z. Для этого необходимо найти несколько самых близких точек, а потом вычислить искомое значение z, исходя из взаимного расположения этих точек в проекции (х, у). Как мы уже рассмотрели выше, для равномерной сетки это намного проще — поиска фактически нет, мы сразу рассчитываем индексы самых близких опорных точек. Еще одна задача — отобразить поверхность.

Эту задачу можно решать несколькими способами, в том числе триангуляцией. Триангуляция - формирование модели поверхности в виде множества связанных треугольников.

Процесс триангуляции можно представить себе так (рис. 1.14). Сначала находим первые три самые близкие друг другу точки — и получаем одну плоскую треугольную грань. Потом находим точку, ближайшую к этой грани, и образовываем смежную грань. И так далее, пока не останется ни одной отдельной точки. Это общая схема, в литературе описано много разных способов триангуляции.

Рис. 1.14. Триангуляция неравномерной сетки

Описание поверхности треугольными гранями можно уже считать разновидностью векторной полигональной модели. В англоязычной литературе для нее встречается название TIN (Triangulated Irregular Network). После триангуляции получаем полигональную поверхность, отображение которой сделать уже достаточно просто.

Рассмотрим еще один из вариантов описания поверхности -изолинии высоты. Любая изолиния состоит из точек, представляющих одно числовое значение какого-то показателя, в данном случае — значение высоты (рис. 1.15). Изолинии высоты также можно вообразить себе как контуры разреза поверхности горизонтальными плоскостями (поэтому для изолиний высоты часто применяется название "горизонтали").

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

Рис. 1.15. Поверхность задана изолиниями и отметками высоты

Если бы Земля была шаром, изолинии высоты можно было бы трактовать как изолинии радиусов. Однако Земля  это не шар, она имеет намного более сложную форму, названную геоидом. В геодезии и картографии геоид аппроксимируют с определенной точностью разнообразными эллипсоидами. Таким образом, здесь можно говорить об изолиниях некоторых условных высот в специальных системах координат.

Конечно, для описания поверхности можно использовать не только изолинии высоты, но и другие изолинии, например х- или у-изолинии.

В компьютерных системах изолинии часто описываются векторно - полилиниями. Используются также изолинии в виде сплайновых кривых.

Точки, которые составляют изолинии, и отдельные опорные точки располагаются неравномерно. Это усложняет расчет координат точек поверхности. В графических компьютерных системах для выполнения многих операций, и в первую очередь - для показа поверхности, обычно необходимо преобразовывать описание поверхности в другую форму. Преобразование изолиний в полигональную модель также выполняется методами триангуляции (здесь алгоритмы триангуляции сложнее, чем для триангуляции отдельных точек). Для преобразования неравномерной сетки в равномерную используют специальную интерполяцию.