Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции в формате doc / Курс лекций_новый_1.doc
Скачиваний:
40
Добавлен:
20.05.2014
Размер:
1 Мб
Скачать
    1. Канал ввода информации

Ввод информации в ИГС предполагает следующие этапы работы ИГС:

  1. построение объекта моделирования;

  2. управление объектом;

  3. изменение параметров объекта.

Из рисунка видно, что пользователь в диалоговом режиме имеет возможность воздействовать на прикладную структуру данных и ПГП.

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

Воздействие на ПГП аналогично рассмотрению объекта с помощью видеокамеры: изменение ракурса просмотра («облет»), изменение расстояния до объекта (трансфокация), изменение освещенности источника.

  1. Растровая развертка примитивов

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

Изображение в растровой графике представляет собой совокупность пикселов, расположенных в строго заданных координатах видовой плоскости. Для получения растрового изображения объекта необходимо «засветить» пикселы наиболее близко прилежащие к отображаемому примитиву. Процесс определения пикселов, наиболее точно аппроксимирующих примитив называется разложением в растр или преобразование в растровую форму.

Основной смысл разработки алгоритмов растровой МГ заключается в следующем. В системе МК координаты объекта с точки зрения программирования представлены в виде действительных чисел. Известно, что по времени операции в ЭВМ с действительными числами (Real) на порядок выше чем операции с целыми числами (Integer). Кроме этого, операции с целыми числами легко поддаются схемо-технической реализации, что еще на порядок увеличивает скорость обработки информации. Примером тому является разработка видеоускорителей, реализующих эти алгоритмы.

УСКОРИТЕЛИ !!!!!!

    1. Растровая развертка прямых линий

Начнем рассмотрение вопросов растровой развертки с построения прямой линии (см . рисунок ).

Рис. 6-1 Разложение в растр отрезка прямой линии

Из рисунка видно, что решение задачи сводится к вычислению координат близлежащих пикселов. Данная задача достаточно просто решается, если воспользоваться известной формулой:

у = mх+b

(3)

На основе формулы (3) реализуется простой пошаговый алгоритм:

  1. xi= xн ;

  2. yi= yн ;

  3. xi+1= xi +1x;

  4. yi+1= m xi +1+ b.

Алгоритм значительно упрощается, если учесть что при x=1 (шаг дискретизации) m=y = уi+1-yi (т.е. y равен тангенсу угла наклона прямой линии).

Реализация данного алгоритма может быть осуществлена в виде цифрового дифференциального анализатора [ ]. Основным недостатком этого метода является необходимость обработки чисел с плавающей запятой (y и m – вещественные числа).

Алгоритм, предложенный Брезенхемом, оперирует только целыми числами.

Рассмотрим следующий рисунок:

Рис. 6-2

Предполагается, что пиксел Pi-1 уже определен. Задача заключается в установлении одного из пикселов Ti или Si.

Для определения нужного пиксела на каждом шаге вычисляется управляющая переменная di, пропорциональная разности между t и s. Если s<t, выбирается пиксел S, в противном случае T.

Опуская теоретические выкладки, с которыми можно познакомиться в [ ], приведем конечный результат:

Начальные значения

  1. x1 = xн;

  2. y1 = yн;

  3. dx = |xк – xн|;

  4. dy = |yк – yн|;

  5. d1= 2dy – dx;

Вычисление

Вычисление управляющей переменной для шага i + 1: x = x+1;

  1. если di  0, выбирается пиксел Ti, тогда yi = yi-1 +1 и di+1 = di + 2(dy-dx);

  2. если di < 0, выбирается пиксел Si, тогда yi = yi-1 и di+1 = di + 2dy.

Данный алгоритм представлен для расчета в 1-м квадранте (тангенс угла наклона находится в диапазоне 0-1). Его практическая реализация и доработка предлагается читателю в качестве упражнения. Как видно, все переменные являются целочисленными. Единственная операция умножения на 2 может быть реализована как сдвиг влево. Таким образом, данный алгоритм может быть легко реализован в виде логической схемы.

Соседние файлы в папке Лекции в формате doc