
- •Изображение трехмерных объектов
- •Проекции
- •Композиция 3d преобразований
- •Уравнения плоских кривых
- •Параметрические уравнения прямых и кривых
- •Специальные методы трехмерного интерактивного графического моделирования
- •Методы интерактивного графического взаимодействия
- •Устройства ввода
- •Методы моделирования логических устройств
- •Технические средства мг. Устройства вывода изображения
Методы моделирования логических устройств
Интерактивный диалог в графических программах требует наличия логических
устройств ввода - локатора, селектора, валуатора, клавиатуры и кнопок. Однако
логическую функцию любого из этих устройств можно реализовать с помощью
физического устройства из любого другого класса, хотя не всегда удачно. С другой
стороны, не всегда целесообразно, чтобы для каждого логического устройства имелись
отдельные физические устройства. Многие распространенные интерактивные графические
системы имеют позиционирующие устройства (планшет, мышь) и клавиатуру с
функциональными кнопками. С помощью этих трех физических устройств реализуются
все логические функции. Ниже представлены логические устройства ввода и возможные
физические устройства для их (логических устройств) моделирования.
Моделирование локатора
Световое перо; Управление курсором с клавиатуры; Управление курсором
параметрически с клавиатуры. Ввод координат; Управление курсором мышью
Моделирование селектора
Выбор курсором объекта; Ввод с клавиатуры имени объекта.
Моделирование валуатора
Ввод значения на клавиатуре; Работа со шкалой.
Моделирование клавиатуры
Распознавание литер. Распознавание рукописных текстов; Изображение
клавиатуры на дисплее.
Моделирование кнопок
Меню иерархическое, которое делится на статическое и динамическое; Световые кнопки.
Технические средства мг. Устройства вывода изображения
Дисплеи. По принципам формирования изображения дисплеи можно разделить на
векторные и растровые. В векторных дисплеях блок управления и отклоняющая система
допускают произвольное перемещение луча. В векторных дисплеях для изображения
прямой линии требуются (запоминаются) координаты начала и конца отрезка, и генератор
векторов перемещает электронный луч строго по прямой линии от одной точки к другой.
Время рисования отрезка прямой в таком дисплее составляет 2-50 мкс (в зависимости от
скорости работы генератора векторов и длины отрезков). Электроннолучевые трубки
(ЭЛТ) векторных дисплеев бывают с регенерацией изображений и запоминающие.
Для создания на экране ЭЛТ с регенерацией изображения картины, воспринимаемой
человеком без мерцания, необходимо 25-60 раз в 1 с повторять (регенерировать)
изображение. В запоминающих ЭЛТ время послесвечения измеряется часами.
Запоминающие ЭЛТ используются в статических дисплеях, в которых возможна
лишь полная смена изображения - стирание предыдущего изображения и вывод
нового - за время, измеряемое десятками секунд. ЭЛТ с регенерацией изображения
используются в динамических дисплеях, обеспечивающих возможность изменения
выводимого изображения по командам ЭВМ или человеком. При этом фактически
происходит полная смена изображения, но за время одного цикла регенерации,
т.е. 0,02-0,04 с. Основной недостаток изображений, получаемых на векторном
дисплее, - невозможность получения тоновых и полутоновых изображений.
В растровых дисплеях изображение формируется следующим образом.
Растровые дисплеи, в свою очередь, можно разделить на следующие виды по видам
технической реализации: наиболее распространенные - на базе электроннолучевой
трубки (аналогичной телевизионной), жидкокристаллические, плазменные.
Принтеры. По способу получения изображения принтеры делятся на матричные,
струйные, лазерные. Характерные критерии оценки каждой технологии при
формировании изображения: скорость вывода изображения; качество полученного
изображения; относительная стоимость полученного изображения.
Графопостроители. По технологии формирования изображения различаются
перьевые, струйные, лазерные. Графопостроители (плоттеры) имеют важную
характеристическую особенность - формат (размер) выводимого изображения
Графопостроители различных моделей имеют возможность выводить
изображения форматов А0, А1, А2, А3, А4. Следует отметить еще одну
разновидность плоттеров - катеры. Катеры ( от англ. cuter - резак) – устройства
для получения выкроек , шаблонов из листового материала, например пленок,
тканей и т.д. Вместо пишущего элемента у катера имеется нож, который
прорезает материал, в результате чего получаются требуемые выкройки, шаблоны и т.д.
Составные кривые
Поверхности произвольной формы, применяемые в авиа-, судо-, автомобилестроении
и других областях невозможно описать, используя простые геометрические поверхности
- цилиндр, сфера, конус и т.п. Возникает необходимость представления сложной
поверхности из отдельных отсеков, которые стыкуются с заданным порядком гладкости.
Для получения описания сложной поверхности реального объекта применима
следующая процедура, обычно используемая для математического представления
таких сложных поверхностей, которая состоит в следующем.
поперечном направлениях. Эта сетка линий определяет множество топологически
прямоугольных ячеек, каждая из которых в случае гладкой поверхности, будет
ограничена четырьмя гладкими кривыми (Рис.22).
Координаты узлов этой воображаемой сетки измеряются на модели или на наборе
чертежей поперечных сечений поверхности.
С помощью интерполяции математически описываются эти две группы линий,
образующих сетку.
Каждая ячейка сетки имеет четыре корректно определенные границы, внутренность
ячейки может быть “заполнена” с помощью двумерной интерполяции.
Полигональная кривая в форме Бернштейна-Безье
Общий вид записи полигональной кривой представляется в виде.
где r0 , r1 ... rn радиус векторы n+1 вершин P0 , P1 ... Pn некоторой обобщенной
характеристической ломаной.
Форма записи кубической кривой Безье является частным случаем кривой
Бернштейна-Безье, если n = 3.
Можно показать, что
r(0) = r0 r(1) = rn
r'(0) = n(r1 - r0)r'(1) = n(rn – rn - 1)
Следовательно, полигональная кривая общего вида проходит через точки P0 и Pn
направление касательных, в которых совпадает с направлением векторов(P0,P1)и(Pn - 1 , Pn).
Преимущество кривых высокого порядка состоит в том, что с их помощью можно получить
непрерывность нескольких производных в местах сочленения отдельных сегментов
сложной кривой.Но, несмотря на то, что характеристическая ломаная все еще дает определения
указания относительно профиля соответствующей кривой, эта связь по мере роста
порядка кривой ослабевает.
Уравнение порции кубической поверхности в форме Фергюсона
Процедура задания поверхности обобщает способ задания кривой, допуская зависимость
a0 , a1 , a2 и a3 от второго параметра s. Используя подобную кубическую параметризацию,
можно записать:r(S) = ai 0 + s ai 1 + s 2ai 2 + s 3ai 3 i = 0 , 1 , 2 , 3.
По мере возрастания S от 0 до 1 кривая r(S)перемещается и изменяет свою форму и эта
варьируемая кривая заметает поверхность, определяемую уравнением:
r = r(s, t) = a00 + sa01 + s2a02 + s3a03 + t a10 + t sa11 + 3 3+ t s2 a12 + t s3 a13 + ... = å å ai j t i s j
i = 0 j = 0
0 £ t £ 1
0 £ s £ 1
Удобно иметь запись отсека поверхности в матричном виде:
r(s , t) = S *A*T или
Видно, что для задания поверхности необходимо определить 16 векторных коэффициентов
\. Для этого нам необходимо зафиксировать начальные условия: r , r/¶t , ¶r/¶s, , ¶2r/¶s¶tв
четырех углах порции(Рис.21). На основаниивведенных начальных условий можно составитьи
решить систему, состоящую из 16 уравнений и определить 16 неизвестных векторных коэффициентов.
Вторая смешанная производная ¶2r/¶s¶t определяет закрученность поверхности в углах порции.
Рис. 21
Уравнение порции поверхности в форме Безье
Если обобщить форму записи кривой Безье аналогично тому, как это было сделано для
формы записи кривой Фергюсона, получим следующий результат.
0 £ t £ 1
0 £ s £ 1
где ri j - вершины характеристического многогранника.
Самой поверхности принадлежат только вершина r00, r03, r30, r33. Периферийные вершины образуют
характеристические ломаные кривых, ограничивающих данную порцию поверхности, причем
четыре вершины расположенные в центре влияют на перекрестные производные в четырех углах.
В матричном виде порция поверхности Безье определяется уравнением:
,
где
Значение rij и его производные в углах данной порции поверхности вычисляются следующим образом.
Выполнив матричное умножение, например, значения вектора r и его производных в
углу с параметрами s = t = 0 определяются соотношениями.
r(0 , 0) = r00 r’t(0 , 0) = 3(r01 - r00)
r’s(0 , 0) = 3(r10 - r00)r”st(0 , 0) = 9(r00 - r01 - r10 + r11)
Решение Эрмита
Пусть требуется описать кривую, проходящую через точки P0 и P3 с заданными значениями
касательных векторов в данных точках, где P0 - начальная и P3 - конечная точки
криволинейного сегмента, а T0 и T3 - значения касательных векторов в соответствующих точках (Рис.16).
Рис. 16
Необходимо найти коэффициенты ai в уравнении
которое описывает значение координаты х кривой относительно параметра t.
Начальными условиями для определения компонент будут являться:
X(0) = P0 X’(0) = T0,
X(1) = P3 X’(1) = T3.
В соответствии с начальными условиями система уравнений принимает вид:
x(0) = P0=
a0
x(1) = P3= a0 + a1 + a2 + a3
x’(0) = T0= a1
x’(1) = T3 = a1 + 2a2 + 3a3
Полученная система уравнений содержит четыре уравнения и четыре неизвестных
коэффициента ai.Решение системы даст нам значения коэффициентов ai уравнения
x(t) = a0 + a1 t + a2 t2 + a3 t3 .
В результате, изменяя значение параметра t с заданным шагом наинтервале от 0 до 1,
уравнение дает определение координаты x точки на кривой. Решение для компонент
У(t)и Z(t)отыскиваются аналогично.
Решение Эрмита в матричном виде
Для представления параметрических кубических кривых удобно использовать
матричную запись. Уравнение кривой в матричном виде для компоненты Х принимает вид:
X(t) = [1, t, t2, t3] * Ax ,
где
-
вектор столбец коэффициентов axi
или x(t) = T * Ax
T — вектор строка параметров t, а Ax - вектор столбец коэффициентов X(t).
Принимая во внимание начальные условия для решения Эрмита можно
записать следующие уравнения в матричном виде:
X(0) = P0 = [ 1 0 0 0 ] * Ax
X(1) = P3 = [ 1 1 1 1 ] * Ax
Дифференцирование по t дает: X’(t) = [ 0 1 2t 3t2 ] *Ax Þ
X’(0) = T0 = [ 0 1 0 0 ] * Ax;
X’(0) = T3 = [ 0 1 2 3 ] * Ax.
Вышестоящие выражения можно объединить в одно матричное уравнение.
где M - матрица коэффициентов Эрмита; Gx - Геометрический вектор Эрмита.
Тогда x(t) = T * M * Gx Þ y(t) = T * M * Gy и z(t)= =T * M * Gz.
Или в общем виде: P(t) = T * M * G .
Если требуется описать кривую проходящую через точки P0 и P3 с заданными
значениями касательных векторов в данных точках, где P0 - начальная и P3 –
конечная точки криволинейного сегмента, а T0 и T3 - значения касательных
векторов в соответствующих точках, то можно определить x(t), y(t), z(t)для
0£ t£ 1 и найти все точки на кривой от P0 до P3 с заданными касательными векторами T0 и T3.
Удаление невидимых линий и поверхностей
Задачи удаления невидимых линий и поверхностей являются одними из наиболее сложных
в машинной графике. Алгоритмы удаления невидимых линий и поверхностей служат для
определения линий, ребер, поверхностей или объемов, которые видимы или невидимы
для наблюдателя, находящегося в заданной точке пространства.
Необходимость удаления невидимых линий, ребер, поверхностей или объемов
проиллюстрированы на (Рис.42).
Рис. 42
Одному пространственному каркасному изображению куба без удаления
невидимых ребер может соответствовать два различных положения куба в
пространстве. Или, в общем случае, несколько разных объектов. Алгоритмы
удаления невидимых линий и поверхностей необходимо применять с целью
повышения реалистичности изображения для следующих приложений:
Авиатренажеры 30 кадр/с.
Машинная мультипликация.
Виртуальные сцены.
Все алгоритмы удаления невидимых линий (поверхностей) включает в себя сортировку.
Главная сортировка ведется по геометрическому расстоянию от тела, поверхности,
ребра или точки до точки наблюдения. Основная идея, положенная в основу
сортировки по расстоянию заключается в том, что чем дальше расположен объект
от точки наблюдения, тем больше вероятность, что он будет полностью или частично
заслонен одним из объектов более близких к точке наблюдения.
После определения расстояний или приоритетов по глубине остается провести
сортировку по горизонтали и вертикали, чтобы выяснить, будет ли рассматриваемый
объект действительно заслонен объектом, расположенным ближе к точке наблюдения.
Эффективность любого алгоритма удаления невидимых линий или поверхностей в
большей мере зависит от эффективности процесса сортировки.
Алгоритмы удаления невидимых линий или поверхностей можно классифицировать
по способу выбора системы координат или пространства, в котором они работают.
Алгоритмы, работающие в объектном пространстве, имеют дело с физической системой
координат, в которой описаны эти объекты. При этом получаются весьма точные результаты,
ограниченные лишь точностью вычислений. Полученные изображения можно свободно
увеличивать несколько раз.
Алгоритмы, работающие в усеченном мировом пространстве, особенно полезны в тех
приложениях, где необходима высокая точность.
Алгоритмы, работающие в пространстве изображения, имеют дело с системой координат
того экрана, на котором объекты изображаются. При этом точность вычислений ограничена
разрешающей способностью экрана. Результаты, полученные в пространстве изображения,
а затем увеличенные во много раз не будут соответствовать исходной сцене. Например,
могут не совпадать концы отрезков.
Алгоритмы, формирующие список приоритетов работают попеременно в обеих упомянутых
системах координат. Объем вычислений для любого алгоритма, работающего в обычном
пространстве и сравнивающего каждый объект сцены со всеми остальными объектами
этой сцены, растет теоретически как квадрат числа объектов n2.
Аналогично, объем вычислений любого алгоритма работающего в пространстве изображения
и сравнивающего каждый объект сцены с позициями всех пикселов в системе координат
экрана растет теоретически как nN. Здесь n - обозначает количество объектов
(тел, плоскостей) в сцене, а N-число пикселов .
Теоретически трудоемкость алгоритмов работающих в объектном пространстве, меньше
трудоемкости алгоритмов работающих в пространстве изображение при n<N. Поскольку
N обычно равно 640x480, то теоретически большинство алгоритмов следует реализовать
в объектном пространстве. Однако на практике это не так. Дело в том, что алгоритмы,
работающие в пространстве изображения, более эффективны, потому что для них легче
воспользоваться преимуществом когерентности при растровой реализации.
Алгоритм, использующий Z-буфер
Алгоритм работает в пространстве изображения. Идея z-буфера является простым
обобщением идеи о буфере кадра. Буфер кадра используется для запоминания атрибутов
(интенсивности) каждого пиксела в пространстве изображения. Z-буфер - это отдельный
буфер глубины, используемый для заполнения координаты z или глубины каждого видимого
пиксела в пространстве изображения. В процессе работы глубина или значение каждого
нового пиксела, который нужно занести в буфер кадра, сравнивается с глубиной того
пиксела который занесен уже в z-буфер. Если это сравнение показывает, что новый
пиксел расположен впереди пиксела, находящегося в буфере кадра, то новый пиксел
заносится в этот буфер и, кроме того, производится корректировка z-буфера новым
значением z. Если же сравнение дает противоположный результат, то никаких действий
не производится. По сути, алгоритм является поиском по x и y значения функций z(x , y).
Главное преимущество алгоритма - его простота. Кроме того, этот алгоритм решает
задачу об удаление невидимых поверхностей и делает тривиальной визуализацию
пересечений сложных поверхностей. Сцены могут быть любой сложности. Поскольку
габариты пространства изображения фиксированы, оценка вычислительной
трудоемкости алгоритма не более чем линейна.
Поскольку элементы сцены или картинки можно заносить в буфер кадра или в z-буфер
в произвольном порядке, их ненужно предварительно сортировать по приоритету глубины.
Поэтому экономится вычислительное время, затрачиваемое на сортировку по глубине.
Недостаток алгоритма z-буфера состоит в трудоемкости и высокой стоимости устранения
лестничного эффекта, а также реализации эффектов прозрачности и просвечивания.
Поскольку алгоритм заносит пикселы в буфер кадра в произвольном порядке, то нелегко
получить информацию, необходимую для методов устранения лестничного эффекта.
При реализации эффектов прозрачности и просвечивания пикселы могут заноситься
в буфер кадра в некорректном порядке, что ведет к локальным ошибкам.
Обобщенный целочисленный алгоритм Брезенхема для всех квадрантов
Начальные условия:
Точки P1 = (x1, y1) P2 = (x2,y2) не совпадают.
Переменные целые
Sign возвращает -1, 0, 1 для a < 0, a = 0, a > 0 соответственно.
Инициализация переменных
x = x1
y = y1
x = abs (x2 - x1)
y = abs (y2 - y1)
S1 = Sign(x2 - x1)
S2 = Sign(y2 - y1)
Обмен значений x и y в зависимости от углового коэффициента наклона отрезка.
if y > x then
Врем = x
x = y
y = Врем
Обмен = 1
else
Обмен = 0
end if
Инициализация e с поправкой на 1/2 пиксела
e =2 y - x
Основной цикл
for i=1 to x
Plot (x, y)
while (e >= 0)
if Обмен = 1 then
x = x + S1
else
y = y + S2
end if
e= e - 2 x
end while (e >= 0)
if Обмен = 1 then
y = y + S2
else
x = x + S1
end if
e = e - 2 x
next i
finish
Алгоритм Брезенхема разложения в растр отрезка для первого октанта
Предполагается, что концы отрезка (x1 y1) и (x2 y2) не совпадает.
integer - функция преобразования в целое
x1 y1 x1 y1 - целые
е - вещественное
Инициализация переменных:
x = x1 x = x2 - x1
y = y1 y = y2 - y1
Инициализация ошибки е с поправкой на 1/2 пиксела.
Начало основного цикла.
for i = 1 to x
Plot (x, y)
while (e 0)
y = y + 1
e = e - 1
end while
x = x - 1
next i
finish.
Блок схема алгоритма
Применение машинной графики
В применении машинной графики различают два уровня: пассивная графика, когда с
помощью пакета прикладных программ производятся формирование и вывод графических
изображений; интерактивная графика - процесс оперативного графического взаимодействия
(диалога) человека с ЭВМ. Интерактивная машинная графика представляет собой важный
раздел МГ, когда пользователь имеет возможность динамически управлять содержанием
изображения, его формой, размерами и цветом на поверхности дисплея с помощью
интерактивных устройств взаимодействия, например клавиатуры, мыши, трекбола и т.п.
Интерактивная машинная графика существенно повышает эффективность диалога
пользователя с ЭВМ за счет использования сочетания графического информации с текстовой
. В итоге повышается качество и точность результатов, снижаются объемы рутинной работы.
Типичными примерами использования интерактивной графики являются следующие области:
создание графиков, гистограмм, диаграмм; геоинформационные системы, картография;
автоматизация чертежных и конструкторских работ; САПР; проектирование компонент
и систем механических, электрических, электромеханических и электронных устройств;
проектирование и моделирование в авиа-, судо-, автомобилестроении; архитектура, дизайн,
геология; моделирование спецэффектов, мультипликация, заставки; управление процессами;
автоматизация канцелярских работ, электронный документооборот, электронная публикация;
искусство и реклама; графические интерфейсы операционных и прикладных систем,
броузеров для Интернета и WEB-серверов; компьютерные игры, библиотеки и энциклопедии
на СD-ROM, интерактивное кино.
1. Тип объекта:
а) линейные рисунки двумерных объектов; б) каркасное представление трехмерных
(3D) объектов; в) каркасное представление 3D объектов с удалением невидимых линий.
г) поверхностное представление 2D объектов. Двумерные тоновые изображения - черно-белые
и цветные; д) трехмерное поверхностное представление 3D объектов с удалением невидимых
линий и поверхностей; е) трехмерное поверхностное представление 3D объектов с
удалением невидимых линий и поверхностей и отображением фактур поверхностей;
ж) твердотельное представление объектов.
2.Тип выводимого изображения:
а) ортогональные проекции; б) аксонометрия (косоугольная, прямоугольная);
в) перспектива, наглядные изображения.
3. Тип интерактивности и уровень возможностей для управления диалогом и изображением:
а) автономное вычерчивание по готовой базе данных с помощью прикладной программы на
графопостроителе; б) интерактивный диалог по созданию чертежей по готовой базе данных;
в) интерактивный графический диалог по созданию чертежей и интерактивное графическое
пространственное проектирование. 4. Роль изображения: а) цель. Инструментальное средство.
Архитектура, дизайн, картография, реклама, искусство; б) компонента. Подсистема САПР.
В свою очередь, использование и распространение машинной графики становится оправданным
для широкого круга приложений вследствие быстрых темпов удешевления аппаратно-технических средств.