КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И...

121
Кафедра Систем Искусственного Интеллекта КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКА Учебное пособие Сиротин Э.Е. Перфильев Д.А. Кушнаренко А.В Руководитель проекта: Сарафанов А.В.

Transcript of КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И...

Page 1: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

Кафедра Систем Искусственного Интеллекта

КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКА

Учебное пособие

Сиротин Э.Е. Перфильев Д.А. Кушнаренко А.В

Руководитель проекта: Сарафанов А.В.

Page 2: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

2

СОДЕРЖАНИЕ 1. ВВЕДЕНИЕ .................................................................................................. 4

1.1. Область применения компьютерной графики...................................... 4 1.2. Модель интерактивной графической системы. ..................................... 6

2. УСТРОЙСТВА ОТОБРАЖЕНИЯ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ . 15 2.1. Двухмерные дисплеи ............................................................................ 16

2.1.1. Дисплеи на основе электронно-лучевой трубки ............................ 16 2.1.2. Дисплеи на основе жидкокристаллической матрицы.................... 23 2.1.3. Дисплеи на основе плазменных панелей ........................................ 29 2.1.4. Электролюминесцентные дисплеи ................................................. 33 2.1.5. Дисплеи на основе эмиссии поля.................................................... 36 2.1.6. Дисплеи на основе светоизлучающих пластиков .......................... 38 2.1.7. Дисплеи «электронная бумага» ...................................................... 39

2.2. Трехмерные дисплеи ............................................................................ 41 2.2.1 Стереоскопические дисплеи ............................................................ 41 2.2.2. Трехмерные дисплеи с механической разверткой ......................... 44

3. МАТЕМАТИЧЕСКИЕ ОСНОВЫ МАШИННОЙ ГРАФИКИ ............. 46 3.1. Понятие однородных координат. ......................................................... 46 3.2 Вопросы элементарной геометрии с использованием однородных

координат ......................................................................................................... 49 3.2.1. Геометрические преобразования на плоскости ............................. 49 3.2.2. Параметрическое уравнение прямой на плоскости ....................... 58 3.2.2. Точечное нормальное уравнение прямой на плоскости ................ 59 3.2.2. Детерминантное уравнение прямой на плоскости......................... 60 3.2.3. Пересечения прямых и отрезков на плоскости .............................. 61 3.2.4. Геометрические преобразования в трехмерном пространстве ..... 64 3.2.5. Поворот относительно произвольного вектора ............................. 68 3.2.6. Линейная интерполяция и твиннинг .............................................. 72 3.2.7. Параметрическое уравнение прямой в трехмерном пространстве

........................................................................................................................ 72 3.2.8. Параметрическое уравнение плоскости в трехмерном

пространстве .................................................................................................. 74 3.2.9. Уравнение плоскости в точечной нормальной форме ................... 75 3.2.10. Пересечение прямой и плоскости в трехмерном пространстве . 76

4. АЛГОРИТМЫ ОТСЕЧЕНИЯ ГЕОМЕТРИЧЕСКИХ ОБЪЕКТОВ ......... 77 4.1. АЛГОРИТМЫ ОТСЕЧЕНИЯ ОТРЕЗКОВ ............................................ 77

4.1.1. Двумерный алгоритм Коэна-Сазерленда ...................................... 78 4.1.2 Двумерный алгоритм Кируса-Бека отсечения произвольным

выпуклым многоугольником ........................................................................ 80 4.2. ОТСЕЧЕНИЕ МНОГОУГОЛЬНИКА ................................................. 84

4.2.1 Алгоритм Сазерленда-Ходжмана ................................................... 84 4.2.2. Алгоритм отсечения многоугольника Вейлера-Азертона ............ 86

Page 3: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

3

5. АЛГОРИТМЫ РАСТРОВОЙ ГРАФИКИ ................................................ 88 5.1. Алгоритмы вычерчивания отрезков .................................................... 88

5.1.1. Цифровой дифференциальный анализатор и алгоритм Брезенхема для вычерчивания отрезков ........................................................................... 89

5.1.2. Алгоритм Брезенхема рисования линии ........................................ 89 5.2. Алгоритмы построения окружности ................................................... 91

5.2.1 Алгоритм Брезенхема генерации окружности ................................ 91 5.3 ЗАКРАСКА МНОГОУГОЛЬНИКА .................................................... 93

5.1. Простейший алгоритм заполнения многоугольника ........................ 93 5.3.2 Алгоритм построчного заполнения ................................................ 93

5.4 ЗАКРАСКА ОБЛАСТЕЙ...................................................................... 96 5.4.1. Рекурсивный метод закраски с затравочной точкой................. 97 5.4.2 Построчный алгоритм заливки с затравкой ................................... 98

6 УДАЛЕНИЕ НЕВИДИМЫХ ПОВЕРХНОСТЕЙ .................................... 99 6.1. Алгоритм удаления невидимых поверхностей на основе Z-буфера . 99

6.1.1. Построчный алгоритм с Z-буфером ............................................ 101 6.2 Алгоритм разбиения области Варнока .............................................. 102 6.3. Построчный алгоритм Уоткинса ...................................................... 105 6.4. Алгоритм трассировки лучей ............................................................ 106

7 ПРОЕКЦИИ ............................................................................................. 108 7.1.1. Параллельные проекции ................................................................ 110 7.1.2. Центральная проекция................................................................... 115

ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА ............................................................ 118

Page 4: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

4

1. ВВЕДЕНИЕ 1.1. ОБЛАСТЬ ПРИМЕНЕНИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ. В настоящее время в различных областях науки и техники ощущается

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

Рисунок 1.1. Взаимосвязь задач обработки визуальной информации.

Обработка изображений связана с преобразованием изобразительной информации вновь в изобразительную форму. Примером здесь может слу-жить устранение искажений или дефектов на изображении, улучшение каче-ства получаемой визуальной информации путем повышения контраста, под-черкивание контуров объектов и т. д.

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

Описание

Изображение Обработка

Синтез Анализ

Изображение

Page 5: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

5

мических фотоснимков, анализ наблюдаемых сцен. Синтез изображений обычно отождествляют с машинной графикой,

хотя последний термин в буквальном понимании стал несколько архаичен. В настоящее время синтезируются на ЭВМ отнюдь не только «графические» картины, наоборот, синтез все больше претендует на создание полноцветных реалистических изображений по их описаниям в неизобразительной форме. Сюда относятся и системы имитации визуальной обстановки на тренажерах, и системы геометрического моделирования в САПР, и системы компьютер-ного киноискусства. Наряду с этим сохраняются и традиционные приложе-ния машинной графики: вывод информации на экран дисплея в виде диа-грамм, графиков, построение чертежей и т. д.

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

Системы, задачами которых являются синтез изображений и обработ-ка графической информации, называют системами машинной графики (СМГ).

Основными областями применения систем машинной графики явля-ются:

1. Системы автоматизации проектирования (САПР) построение черте-жей, проекций, планов, двумерных и трехмерных визуальных моделей дета-лей и объектов.

2. Дизайнерские работы в таких областях, как автомобиле- и самолето-строение, архитектура, пошив одежды; картография (составление, корректи-ровка, хранение и генерация карт), средства массовой информации, поли-графия, реклама;

3. Автоматизация исследований (отображение в визуальной форме ре-зультатов экспериментов, вычерчивание графиков, гистограмм, диаграмм и т. д.).

4. Организация эффективного взаимодействия человека с ЭВМ (гра-фические языки, графические интерфейсы, интерактивная графика).

5. Синтез картин и сцен (для тренажеров самолето- и автовождения, в машинной живописи, в компьютерных играх, компьютерная мультиплика-ция и кинематография).

Page 6: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

6

1.2. МОДЕЛЬ ИНТЕРАКТИВНОЙ ГРАФИЧЕСКОЙ СИСТЕМЫ. Машинная графика стала обязательной частью почти любой инфор-

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

Состав типичной СМГ представлен на рис. 1.2.

Рисунок 1.2. Состав типичной интерактивной системы машинной графики. Схематически работу системы можно представить следующим обра-

зом. На основании базы знаний и банка данных ЭВМ генерирует модель «мира». Затем эта модель преобразуется программой синтеза изображения в удобную для восприятия человеком форму. Сформированная таким образом информация выдается на устройство отображения графической информации, вызывая на нем появление соответствующего изображения, которое может быть документировано с помощью устройства получения твердых копий. На этапе окончательного формирования изображения в него могут включаться готовые фрагменты из банка видеоданных. Пользователь через устройство ввода информации может формировать и дополнять базу знаний и банк дан-ных, корректировать модель «мира» и работу программы синтеза изображе-ния, а также производить непосредственные операции над изображением

Устройство ввода информа-

ции

Программа синтеза изображения

Модель «мира»

База знаний Устройство отображения графической информации

Устройство получения твердых копий

Пользователь

Банк видеодан-ных

Банк данных

Page 7: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

7

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

Модель «мира» является центральным звеном практически всех со-временных СМГ. Эта модель порождает «мир», состоящий из моделируемых объектов. Все объекты «мира» описываются своими наборами характери-зующих их параметров. По размерности моделируемого «мира» модели при-нято делить на двумерные и трехмерные.

Двумерные модели делят на растровые и векторные. Растровые мо-дели – представлены в виде матриц, обычно прямоугольных, где элементы матрицы представляют точки изображения. Каждая точка изображения ха-рактеризуется координатами x и y и, некоторым вектором V. Если V является одномерным вектором, т. е. содержит лишь одно числовое значение, то оно может представлять, например, яркость данной точки изображения. В случае цветного изображения, где в качестве модели представления цвета, напри-мер, используется модель RGB, каждый пиксель характеризуется координа-тами x и y, и трехмерным вектором, компоненты которого задают значения интенсивности основных цветов модели, тремя красного, зеленого и синего V(x, y)=(VR , VG ,VB) рис. 1.3. Комбинируя эти три цвета можно получить большое количество различных оттенков.

Рисунок 1.3. Растровое представление цветного изображения.

Растром называют способ расположения точек изображения (растро-вых элементов). На рис. 1.3. изображен растр, элементами которого являются квадраты, такой растр называется квадратным, именно такие растры наибо-лее часто используются. Хотя возможно использование в качестве растрово-

y

x

V(x, y) = (VR, VG, VB)

Page 8: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

8

го элемента фигуры другой формы, соответствующей следующим требова-ниям:

1. Все фигуры должны иметь одинаковую форму и размеры. 2. При наложении в форме мозаики фигуры должны полностью покры-

вать плоскость без пропусков наложений и отверстий. Так в качестве растрового элемента возможно использование равно-

стороннего треугольника рис. 1.4.а, или правильного шестиугольника рис. 1.4.б.

n

m

n

m

а б

Рисунок 1.4. Треугольный а и гексагональный б растры. Выберем на растре любой его элемент. Непосредственно окружающие

этот элемент другие элементы растра называются соседями выбранного эле-мента. Для прямоугольного растра понятие соседства можно определить двумя способами:

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

2. Восьмисвязное соседство, когда соседями считаются элементы рас-тра, имеющие с выбранным не менее одной общей точки рис. 1.5.

Рисунок 1.5. Четырехсвязное а и восьмисвязное б соседство, и отрезки

прямых линий, построенные на их основе.

а б

Page 9: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

9

Для гексагонального растра определяется шестисвязное соседство, оп-

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

Рисунок 1.6. Шестисвязное соседство в гексагональном растре.

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

Рисунок 1.9. Объекты векторных моделей.

Трехмерные модели, в свою очередь, подразделяются на каркасные модели, поверхностные модели и модели сплошных тел.

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

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

б а в г

Page 10: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

10

а б

Рисунок 1.10. Двойная интерпретация одной каркасной модели.

Рисунок 1.11. NURBS-поверхность, задаваемая полиноминальной функцией В моделях сплошных тел объекты формируются из примитивов путем

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

Рисунок 1.12. Составной объект.

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

= -

Page 11: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

11

тельно облегчает задачу разработчика модели, так как вместо детального описания объекта он задает лишь закон его построения. Кроме геометриче-ского описания объектов в модели «мира» хранятся и другие параметры, не-обходимые для синтеза изображения (например, цвета поверхностей объек-тов).

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

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

Рисунок 1.13. Реалистичное изображение.

К настоящему времени в процессе синтеза реалистичного цветного трехмерного изображения можно выделить следующие этапы:

1. Удаление скрытых поверхностей, т. е. поверхностей или их частей, которые не видны из точки нахождения воображаемого наблюдателя. Этот этап может быть выполнен, например, с помощью «алгоритма Z-буфера» или «алгоритма Робертса» рис. 1.14.

Page 12: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

12

Рисунок 1.14. Удаление невидимых поверхностей.

2. Закраска видимых поверхностей с учетом свойств самой поверхно-сти (цвет, фактура, отражательная способность), ее относительного местопо-ложения, ориентации, а также свойств источников света и поверхностей дру-гих объектов рис. 1.15.

Рисунок 1.15. Закраска с учетом свойств поверхностей.

3. Выравнивание интенсивностей соседних поверхностей с помощью алгоритмов закраски Гуро или Фонга рис. 1.16.

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

Page 13: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

13

Рисунок 1.16. Закраска со сглаживанием.

Рисунок 1.17. Моделирование движения.

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

К устройствам отображения графической информации относятся дисплеи. Наиболее популярны в настоящее время растровые дисплеи. В них изображение строится из набора дискретных элементов — пикселов. В со-временных растровых дисплеях может генерироваться изображение с дис-кретностью до 4096 x 4096 пикселов, с числом цветов свыше 16 млн. и чис-лом уровней яркости одного цвета до 256.

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

В качестве устройства ввода информации в ЭВМ наиболее часто ис-пользуются: алфавитно-цифровая и функциональная клавиатуры, световое перо, графические планшеты, манипуляторы типа «мышь» и «трэкбол», а

Page 14: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

14

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

В качестве базовых для синтеза изображения могут использоваться универсальные ЭВМ практически всех классов — от персональных компью-теров до суперЭВМ. Для синтеза реальных трехмерных сцен необходимы 32- и 64-разрядные ЭВМ. Современная высокопроизводительная графическая система средней стоимости способна формировать динамическое изображе-ние, состоящее из 1000000 многоугольников с частотой свыше 25 кадров в секунду.

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

Приблизительно в этот же период времени были разработаны два паке-та графических программ, доступные для всех типов дисплеев. Это, трехмер-ная система Core Graphics System и двухмерная система Graphical Kernel Sys-tem, принятая Международной организацией по стандартизации. Однако у этих пакетов есть существенный недостаток. Они разрабатывались еще до того, как стали отдавать предпочтение растровым дисплеям, поэтому при ис-пользовании этих пакетов невозможно в полной мере учитывать преимуще-ства растровых моделей.

В настоящее время графические операторы (или вызовы графических подпрограмм) можно применять практически во всех языках высокого уров-ня (Си, Паскаль, Бейсик и т. д.). Появились языки графического (визуально-го) программирования, в котором основные элементы имеют пиктографиче-скую, а не текстуальную природу (Delphi, C++ Builder).

В настоящее время благодаря появилось большое количество про-грамм, синтезирующих реалистичные динамические изображения на экранах персональных компьютеров («3D Studio Max», «Maya») и др. Что же касается суперЭВМ, то сейчас многие кадры фильма, целиком синтезированные на

Page 15: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

15

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

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

2. УСТРОЙСТВА ОТОБРАЖЕНИЯ ГРАФИЧЕСКОЙ

ИНФОРМАЦИИ

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

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

Трехмерные дисплеи предназначены для формирования трехмерных изображений. При построении таких изображений используют либо эффект стереоскопии, либо использование механической пространственной разверт-ки. При использовании стереоскопических дисплеев, наблюдатель одновре-менно два плоских изображений сцены, полученные для разных точек на-блюдения, получает возможность ощущать глубину наблюдаемой сцены и взаимное расположение объектов сцены. В отличие от них, изображения, формируемые дисплеями с механической пространственной разверткой, яв-ляются истинно трехмерными. Наблюдатель может рассматривать их с раз-личных точек зрения, меняя свое положение в пространстве, так, как если бы он рассматривал реальный трехмерный объект. К сожалению, трехмерные дисплеи еще не пользуются популярностью, в том числе и из-за их высокой

Page 16: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

16

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

не только в системах машиной графики. 2.1. ДВУХМЕРНЫЕ ДИСПЛЕИ В настоящее время разработано большое количество различных типов

двухмерных дисплеев, работающих на разных принципах. Мы рассмотрим следующие их разновидности:

1. Дисплеи на основе электронно-лучевой трубки. 2. Дисплеи на основе жидкокристаллических матриц. 3. Дисплеи на основе плазменных панелей. 4. Электролюминесцентные дисплеи. 5. Дисплеи на основе эмиссии поля. 6. Дисплеи «электронная бумага».

2.1.1. Дисплеи на основе электронно-лучевой трубки Изначально первыми дисплеями были дисплеи на основе электронно-

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

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

Page 17: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

17

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

лучевой трубки. Сама электронно-лучевая трубка (ЭЛТ) представляет собой электровакуумный прибор, в горловине которого находится электронно-оп-тическая система, состоящая из электронной пушки, формирующей элек-тронный луч, и отклоняющей системы, управляющей его движением рис. 2.1. С противоположной стороны находится экран, покрытый люминофором, на поверхности которого электронным лучом и формируется изображение. Вблизи экрана находится специальный электрод – второй анод, на который подается высокое напряжение (свыше 10 кВ), благодаря которому создается разгонное электрическое поле, придающее электроном необходимую ско-рость движения.

Рисунок 2.1. Устройство монохромной ЭЛТ.

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

Электронная пушка

Отклоняю-щая система

Экран, по-крытый люми-нофором

Пучок элек-тронов (электрон-ный луч)

Второй анод

Page 18: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

18

поле отклоняет луч в горизонтальном направлении. Горизонтальные катушки получили название кадровых, их магнитное поле отклоняет электронный луч в вертикальном направлении. При отсутствие напряжения на катушках от-клоняющей системы, электронный луч попадает точно в центр экрана. На строчные и кадровые катушки подается пилообразное напряжение рис. 2.2. Причем период колебаний напряжения на кадровых катушках больше перио-да колебаний на строчных во столько раз, на сколько горизонтальных строк раскладывается изображение в растре.

Рисунок 2.2. Форма напряжения на катушках отклоняющей системы.

Предположим, что как на строчных, так и на кадровых катушках от-клоняющей системы присутствует напряжение –U. Под воздействием их магнитного поля электронный луч сместится в верхний левый угол экрана рис. 4.1. Начнем изменять напряжение на строчных катушках в соответствие с рис. 4.2. Электронный луч начнет двигаться в правую сторону по горизон-тали, поскольку напряжение на строчных катушках начинает убывать. В тот момент, когда напряжение станет равно нулю, луч окажется в центре самой верхней строки экрана. Затем напряжение начинает плавно возрастать, но уже другой полярности. Луч продолжает перемещение вправо, пока не дос-тигнет правой крайней точки верхней строки. В этот момент напряжение на строчных катушках будет равно +U рис. 4.2. В следующий момент времени напряжение скачком изменится на -U . Электронный луч моментально пере-местится снова в крайнюю левую точку. Но за время движения луча вдоль верхней строки напряжение на кадровых катушках изменится так, что луч по вертикали сместится ровно на одну строку вниз. Тем самым, следующий пе-риод колебаний напряжения на строчных катушках, будет управлять пере-мещением луча вдоль следующей строки растра. Этот процесс продолжается до тех пор, пока электронный луч не достигнет нижнего правого угла экрана.

t

U, B

0B

+U

-U

Page 19: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

19

В этот момент, напряжение и на строчных, и на кадровых катушках скачком изменится на противоположное значение. В результате луч переместится снова в верхний левый угол экрана. И весь процесс повторится для нового кадра. Частоты смены строк и кадров подобраны таким образом, что глаз на-блюдателя не успевает заметить смены кадров, и тем более, перемещения электронного луча вдоль строк. Изменяя энергию луча синхронно с его пе-ремещением по экрану так, чтобы когда луч находится в определенной точке, яркость свечения люминофора соответствовала яркости данной точки изо-бражения, на экране формируется необходимое изображение. Производя смену изображений синхронно со сменой кадров, можно достичь эффекта непрерывного движения или анимации.

Современные монохромные дисплеи позволяют получать изображения с разрешением до 4096х4096 точек растра с числом уровней яркости равным 256 или 65536. Частота смены кадров может достигать 120 кадров в секунду.

В цветных дисплеях на основе электронно-лучевой трубки каждая точ-ка изображения (пиксель) состоит из трех точек люминофора базовых цве-тов, красного, зеленого и синего. Изменяя яркость свечения этих точек, мож-но получить значительное число цветных оттенков для каждого пикселя изо-бражения. Современные цветные дисплеи позволяют получать изображения с разрешением до 2048х1280 точек растра и отображать более 16 млн. цвето-вых оттенков. Частота смены кадров может достигать 120 кадров в секунду.

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

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

Page 20: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

20

Рисунок 2.3. Устройство цветной ЭЛТ с теневой маской.

Раздельные электронные лучи формируются при помощи трех одина-ковых раздельных электронных пушек, расположенных в вершинах равно-стороннего треугольника. Их расположение похоже на греческую букву ∆, почему и ЭЛТ данного типа получили название ЭЛТ с дельтообразным рас-положением электронных пушек. Точки люминофора трех цветов также рас-положены в вершинах равностороннего треугольника и образуют триады точек. Каждая триада соответствует одной точке растра. Между отклоняю-щей системой и экраном располагается еще один электрод, называемый те-невой маской. Он представляет собой тонкую металлическую пластину, в которой пробито множество круглых отверстий, упорядоченных по строкам и столбцам. Число этих отверстий равно числу отображаемых точек растра. Специальная система сведения лучей изменяет направление движения каж-дого электронного луча так, чтобы все три луча пересеклись в одной точке, и эта точка лежала в плоскости маски. Расстояние от маски до экрана подобра-но таким образом, что, если точка пересечения лучей лежит в плоскости мас-ки, и совпадает с отверстием в маске, то каждый из лучей попадает строго на точку своего цвета в соответствующей триаде. При перемещении лучей вдоль экрана, как только лучи начнут покидать свои точки, они уже не попа-дут в отверстие маски, и окажутся ею загороженными. А значит, не достиг-нут люминофора. Когда при дальнейшем перемещении лучи снова окажутся в отверстии маски они также попадут на точки своего цвета. В результате на экране будет получено цветное изображение.

B R

B

Три электронных пушки

Отклоняющая сис-тема

Теневая маска

Отверстие в маске Точки люминофора 3-х

цветов

3 электронных луча

Экран

R G

Page 21: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

21

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

Перечисленные недостатки ЭЛТ с теневой маской заставили искать способы их устранения, что привело к разработке ЭЛТ с щелевой маской и планарным расположением электронных пушек.

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

Рисунок 2.4. Устройство ЭЛТ с щелевой маской.

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

Дальнейшее развитие ЭЛТ привело к созданию ЭЛТ «Тринитрон», ко-торая была разработана инженерами компании Sony. В этой ЭЛТ электрон-

B

G R

Три электронных пушки

Отклоняющая сис-тема

Щелевая маска

Полоски люминофора 3-х цветов

Экран

B

Page 22: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

22

ные лучи формируются одной общей электронной пушкой с раздельными ка-тодами, расположенными на одной горизонтали рис. 4.5. В качестве маски используются проволочная решетка из множества натянутых на рамку тон-ких вертикальных струн.

Рисунок 2.5. Устройство ЭЛТ «Тринитрон».

Благодаря этим решениям, удалось, во-первых, упростить изготовление ЭЛТ, во-вторых, проволочная маска оказывает ничтожное ослабление энер-гии электронного луча. Поэтому современные дисплеи на основе ЭЛТ изго-тавливаются только по технологии «Тринитрон» или ей подобным.

Все дисплеи на основе электронно-лучевой трубки обладают набором достоинств:

1. Непревзойденное качество цветопередачи за счет использования люминофоров с высокой чистотой излучаемого цвета.

2. Достаточные для большинства применений яркость и контрастность изображения.

3. Очень малая инерционность. Позволяет сменять изображения с большей скоростью.

3. Возможность работы с указательным устройством световое перо. 4. Относительно низкая стоимость. Разумеется, дисплеи этого типа не лишены недостатков: 1. Большие габариты и масса. 2. Повышенное энергопотребление. 3. Ухудшение цветопередачи со временем из-за старения люминофора

и материала катодов. 4. Сложность изготовления ЭЛТ больших диагоналей. Для обеспечения

Электронная пушка с тремя катодами

Отклоняющая сис-тема

Проволочная маска

Полоски люминофора 3-х цветов

Экран

Page 23: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

23

необходимой прочности, при увеличении размера экрана приходится увели-чивать толщину стенок ЭЛТ. Это приводит к быстрому возрастанию их мас-сы и габаритов. Так ЭЛТ с диагональю 1,5 метра имеет массу свыше 150 кг.

5. Повышенные требования к электробезопасности. Присутствие внут-ри дисплея высоковольтных цепей предъявляет особые требования к их изо-ляции и качеству изготовления электронных компонентов в этих цепях.

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

7. Вредные электромагнитные излучения. В дисплеях на основе ЭЛТ имеются высоковольтные источники электрических полей высокой частоты, что приводит к возникновению паразитных электромагнитных излучений различных частот. Кроме того, при торможении быстродвижущихся электро-нов в люминофоре, возникает тормозное рентгеновское излучение. Несмотря на принимаемые в современных дисплеях меры по ослаблению этих излуче-ний, длительное их воздействие на организм человека может приводить к нежелательным эффектам. Вплоть до ухудшения состояния здоровья пользо-вателей таких дисплеев.

2.1.2. Дисплеи на основе жидкокристаллической матрицы Австрийский ботаник Friedrich Reinitzer открыл жидкие кристаллы в

1888 г. В 1973 г. был разработан первый дисплей на жидких кристаллах (EL 8025) для переносной ЭВМ.

Жидкие кристаллы (ЖК) способны находиться в нескольких фазах, промежуточных между твердым и жидким состояниями. Молекулы ЖК яв-ляются стрежнеобразными органическими соединениями рис. 2.6 и находят-ся в различных ориентациях в этих фазах рис. 2.7.

Page 24: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

24

Рисунок 2.6. Структурная формула жидкого кристалла

В изотропической фазе, которая является жидкой фазой при повыше-нии температуры, и позиция и ориентация молекул случайны.

Если температура понижается, то в ЖК совершаются переходы через различные фазы, одна из которых - так называемая нематическая фаза, ис-пользуется в дисплеях. В этой фазе позиции молекул все еще случайны, но все они ориентированы в одном направлении.

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

Рису нок 69

Изотропическая фаза

Рису нок 70

Нематическая фаза

Рису нок 71

Смектическая фаза

Рисунок 2.7. Фазы жидкого кристалла Вследствие оптической и электрической анизотропии ЖК-молекул ко-

эффициент преломления зависит от направления поляризации света относи-тельно оси молекулы. Это свойство используется для поворота поляризации при прохождении света через закрученную ЖК-структуру.

Известно, что свет не проходит через два скрещенных поляризатора рис. 2.8.

Рису нок 73

Рисунок 2.8: Прохождение неполяризованного света через поляризаторы

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

Page 25: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

25

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

Рису нок 74

Рисунок 2.9. Закрученные цепочки молекул жидкого кристалла

Расстояние между пластинами составляет порядка 10 мкм. В зависимо-сти от расстояния между пластинами и типа жидкого кристалла угол поворо-та молекул составляет обычно 90° или 270°.

При приложении электрического поля молекулы, вследствие их анизо-тропии, ориентируются вдоль поля. В этом случае цепочки раскручиваются, и пропадает возможность поворота плоскости поляризации рис. 2.10. ЖК-дисплеи имеют два таких перекрещенных поляризатора с перекрученным жидким кристаллом между ними рис. 2.11. Благодаря вращению плоскости поляризации цепочками молекул, свет проходит через поляризаторы, и дан-ная точка дисплея становится светлой. При приложении электрического поля к прозрачным электродам, нанесенных на внутренние стороны пластин, эф-фект поворота плоскости поляризации пропадает и соответствующая точка дисплея становится темной.

Page 26: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

26

Рисунок 2.10. Принцип действия жидкокристаллического дисплея.

Рисунок 2.11 Устройство жидкокристаллического дисплея.

При выключении напряжения кристалл за время порядка от единиц до сотен миллисекунд возвращается в исходное состояние.

Важной особенностью жидких кристаллов является то, что при проте-

Источник света

Нижний поляризатор Направление поляри-зации

Верхний поляризатор Закрученная це-почка молекул Электрическое поле

Цепочка молекул раз-вернулась

Направление поляри-зации

Свет проходит беспре-пятственно (светящаяся точка) Свет не проходит (темная

точка)

Источник света

Нижний поля-ризатор

Направление поляри-зации

Направление поляри-зации

Верхний поля-ризатор Стеклянная пластина

(внизу сетка электро-дов)

Стеклянная пластина (сверху сетка элек-тродов)

Слой жидких кристаллов

Page 27: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

27

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

В настоящее время применяют наибольшее распространение получили следующие технологии изготовления ЖК-дисплеев:

1. TN (twisted nematics) – монохромные дисплеи, в которых цепочки молекул изначально закручены на 90°. Такие дисплеи имеют самое низкое быстродействие.

2. STN (super twisted nematics) – монохромные дисплеи, в которых це-почки молекул перекручены дважды (т.е. угол поворота равен 270°). Такие дисплеи обладают более высоким быстродействием чем TN.

3. FSTN (film super twisted nematics) – STN-дисплеи, в которых для по-вышения контрастности и четкости изображения используют нанесение на поверхность стеклянной пластины специальной корректирующей пленки. Принцип ее действия схож с просветляющими пленками для оптики.

4. CSTN (color STN) – цветной STN-дисплей. Цветные ЖК-дисплеи ис-пользуют три точки экрана для формирования одной точки изображения. Три основных цвета получают с помощью пленочных светофильтров, нанесен-ных на поверхность верхней стеклянной пластины. Поскольку чистота цве-товых оттенков получаемых с помощью светофильтров ниже, чем при излу-чении, качество цветопередачи у цветных ЖК-дисплеев хуже, чем у дисплеев на основе ЭЛТ.

5. FCSTN (film CSTN) – цветной STN-дисплей с цветокорректирующей пленкой. Для улучшения цветопередачи на поверхности стеклянных пластин в таких дисплеях наносится специальная цветокорректирующая пленка.

6. TFT (thin film transistors), TFD (thin film diodes) – для повышения бы-стродействия были разработаны ЖК-дисплеи с активной матрицей, в кото-рых каждая точка снабжается независимо управляемым тонкопленочным транзистором или диодом рис. 2.12 и рис. 2.13. Такие дисплеи значительно более быстродействующие, но и имеют большую стоимость, так как, напри-мер, для цветного дисплея 800×600 надо иметь 1 440 000 бездефектных тран-зисторов или диодов.

Page 28: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

28

Рисунок 2.12. Устройство TFT ЖК-дисплея.

Рисунок 2.13. Принцип действия TFT ЖК-дисплея.

Все дисплеи на основе ЖК матриц обладают набором достоинств: 1. Малая толщина и масса. 2. Высокие показатели яркости и контрастности изображения.

Источник света

Нижний поля-ризатор

Направление поляри-зации

Направление поляри-зации

Верхний поля-ризатор Стеклянная пластина

Стеклянная пластина

Слой жидких кристаллов Тонкопленочные поле-

вые транзисторы (по-гружены в кристалл)

Канал открыт полностью, через него течет сильный ток. Создает-ся мощное электрическое поле. Цепоч-ки молекул поворачиваются на боль-

ший угол

Канал прикрыт, через него течет слабый ток. Создается слабое электрическое поле. Цепочки молекул поворачиваются на меньший

угол

Тонкопленочный транзистор

Слой жидких кристаллов

Электрическое поле

Электрический потенциал

Page 29: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

29

3. Малое энергопотребление. Основным потребителем является источ-ник света.

4. Отсутствие стробоскопического эффекта и вредных излучений. 5. Длительный срок службы. К сожалению, они не лишены и недостатков: 1. Низкое качество цветопередачи. 2. Большая инерционность (малое быстродействие). 3. Ограниченный угол обзора. 4. Ограниченный температурный диапазон. 5. Трудности при изготовлении ЖК-дисплеев больших диагоналей. 6. Относительно высокая стоимость. Однако эти недостатки не мешают широкому распространению ЖК-дисплеев.

2.1.3. Дисплеи на основе плазменных панелей Дисплеи с плазменной панелью (Plasma Display Panels - PDP) исполь-

зуют явление свечения при разряде в газе. Как показано на рис. 2.14, первые плазменные панели состояли из параллельных покрывающих прозрачных пластин, пространство между которыми заполнено газом (на основе неона) под атмосферным давлением. Между покрывающими пластинами находится стеклянная пластина с отверстиями (маска), разделяющая газ на растр из ма-леньких ячеек. На покрывающих пластинах с их внутренних сторон нанесе-ны группы прозрачных полосок параллельных проводников, находящихся напротив отверстий в маске. Проводники на одной пластине перпендикуляр-ны проводникам на другой пластине. Таким образом, каждая ячейка пред-ставляет собой нечто вроде маленькой неоновой лампочки.

Page 30: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

30

Рису нок 64

Рисунок 2.14. Устройство монохромной плазменной панели.

Если для незажженной ячейки между проводниками нарастает напря-жение, то при достижении напряжения зажигания Uз рис. 2.15 ячейка загора-ется. Газ в ячейке ионизируется, в ячейке возникает плазменный столбик, ток через нее заметно увеличивается, а напряжение падает до напряжения горе-ния Uг, заметно меньшего, чем напряжение загорания. При уменьшении при-ложенного напряжения до напряжения потухания Uп разряд в ячейке пре-кращается и она гаснет за время порядка 20 мкс, за которое все ионы попадут на отрицательный электрод.

Рисунок 2.15. Принцип управления плазменной панелью.

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

t

U

a b с

d e

f g

а. Напряжение питания отсутствует. b. Включено питание. Пиксель не светится. c. Импульс зажигания. d. Пиксель светится. e. Импульс гашения. f. Пиксель не светится. g. Напряжение питания отключено.

Uп Uг

Page 31: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

31

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

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

Рисунок 2.16. Устройство цветной плазменной панели.

На первый взгляд кажется, что качество цветопередачи у дисплеев на основе цветных плазменных панелей должно быть на уровне дисплеев на ос-нове ЭЛТ. Однако это далеко не так. Поддержание разряда в газе требует значительных затрат энергии. Если попытаться вывести на экран плазменно-го дисплея изображение белого прямоугольника во весь экран, то чтобы обеспечить яркость на уровне дисплея на основе ЭЛТ, то потребляемая мощ-ность плазменного дисплея составит несколько киловатт. А при выводе чер-ного экрана, потребляемая мощность не превысит нескольких ватт. Разуме-ется, такие перепады потребляемой мощности совершенно не допустимы. Поэтому, у всех плазменных дисплеев реализован принцип ограничения по-требляемой мощности, при отображении ярких объектов занимающих боль-

Ячейки, заполненные инерт-

ным газом

Защитное стекло

Основание

Диэлектрическая подложка

Горизонтальные электроды

Вертикальные элек-троды

Триада ячеек

Люминофор

Page 32: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

32

шую площадь экрана. Для этого, при отображении таких объектов уменьша-ется яркость свечения составляющих их точек. Что негативно сказывается на качестве цветопередачи. Помимо этого, имеются трудности, получения очень темных оттенков цветов, близких к черному цвету. Они обусловлены, тем, что разряд в газе прекращается, при достижении яркости точки значительно более высокой, чем требуемой. Поскольку становится недостаточно ионов для поддержания разряда. Поэтому для получения очень темных оттенков, приходится применять различные ухищрения, например, использовать ши-ротноимпульсную модуляцию питающего напряжения. Однако и в этих слу-чаях качество получаемых темных оттенков далеко от желаемого.

Дисплеи на основе плазменных панелей обладают рядом достоинств: 1. Качество цветопередачи выше, чем у ЖК-дисплеев. 2. Средние показатели яркости и контрастности. 3. Малая толщина. 4. Малая инерционность. 5. Возможность изготовления дисплеев больших диагоналей. 6. Отсутствие вредных электромагнитных излучений. 7. Расширенный диапазон эксплуатационных температур. Разумеется, такие дисплеи не лишены и недостатков: 1. Повышенное энергопотребление. 2. Усреднение яркости и некачественные темные оттенки цветов. 3. Большой размер точки изображения. 4. Сложность построения системы управления. 5. Большие габариты и масса, чем у дисплеев на основе ЖК-матриц. 6. Эффект запоминания изображения, при длительном отображении

статической информации рис. 2.17 за счет неравномерного выгорания люми-нофора ячеек.

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

Page 33: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

33

Рисунок 2.17. Эффект памяти плазменных дисплеев.

2.1.4. Электролюминесцентные дисплеи В 1937 г. был открыт эффект электролюминесценции, заключающийся

в излучении света легированного марганцем ZnS под воздействием электри-ческого поля высокой напряженности ( ∼ 106 в/см).

В 1981 г. началось практическое использование электролюминисцент-ных дисплеев. Они обеспечивают очень высокие контрастность и яркость при малых инерционности и толщине и высокой прочности. Срок их службы - более 120 000 часов, диапазон рабочих температур от -45°C до +65°C, угол обзора до 160°.

Электролюминесцентный дисплей состоит из стеклянной пластины, прозрачных проводников из окиси олова, чередующихся слоев изолятора и люминофора и темных проводников, перпендикулярных прозрачным рис. 2.18.

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

Page 34: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

34

Рисунок 2.18. Устройство электролюминесцентного дисплея

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

Люминофор, применяемый в электролюминисцентных индикаторах, требует довольно высокого напряжения (170-210 В), что требует применения более дорогостоящих микросхем управления, чем для жидкокристаллических индикаторов.

В настоящее время появилась и завоевывают все большую популяр-ность электролюминесцентные дисплеи на органических светодиодах (OLED).

Структура простейшего OLED-дисплея представляет собой несколько тонких слоев органического вещества, заключенных между пересекающими-ся частями расположенных перпендикулярно друг другу прозрачного анода и металлического катода рис. 2.19.

Основание

Диэлектрическая пленка

Прозрачная диэлек-трическая пленка Люминофор

трех цветов

Сетка электродов

Сетка прозрачных электродов

Защитное стекло

Page 35: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

35

Рисунок 2.19. Устройство OLED-дисплея.

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

Значительно улучшить эффективность такого дисплея позволило до-бавление в вещество светоизлучающего слоя небольшого количества специ-альных инородных молекул с ярко выраженными электролюминесцентными свойствами. Данное решение, стало позволило создать полноцветные OLED-дисплеи.

Достоинства электролюминесцентных дисплеев следующие: 1. Очень малое энергопотребление. 2. Относительная простота изготовления. 3. Высокие яркость и контрастность изображения. 4. Малая инерционность. 5. Отсутствие стробоскопического эффекта и вредных излучений. 6. Сверхмалая толщина. 7. Расширенный диапазон эксплуатационных температур.

Основание

Прозрачная пленка

Органические свето-диоды трех цветов

Сетка электродов

Сетка прозрачных электродов

Защитное стекло

Page 36: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

36

Недостатки у рассмотренного типа дисплеев следующие: 1. Малый срок службы люминофора и органических светодиодов. 2. Ограниченный диапазон воспроизводимых цветов (не более 65536). 3. Эффект запоминания изображения, при длительном отображении

статической информации за счет неравномерного выгорания люминофора или ухудшения свойств органических светодиодов.

2.1.5. Дисплеи на основе эмиссии поля Дисплеи на основе эмиссии поля (field emission display, FED) – плоские

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

Page 37: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

37

Рисунок 2.20. Устройство дисплея на основе эмиссии поля Применение люминофоров ЭЛТ требует использования высокого ус-

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

Дисплеи данного типа (в основном пятидюймовые дисплеи для прибо-ров) в настоящее время серийно в промышленных масштабах производит PixTech (консорциум компаний в Европе, США и Японии).

Дисплеи на основе эмиссии поля обладают следующими достоинства-ми:

1. Малая толщина. 2. Малое энергопотребление. 3. Высокое качество цветопередачи. 4. Малая инерционность. 5. Отсутствие стробоскопического эффекта. Однако они не лишены и недостатков: 1. Повышенные требования к электробезопасности, из-за наличия в

дисплеи высоких напряжений (нескольких сотен вольт).

Сверхострые катоды

Прозрачные аноды Люминофор

Стенки вакуумного баллона

Триада

Page 38: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

38

2. Сложность изготовления дисплеев больших диагоналей. 3. Наличие слабых электромагнитных излучений. 2.1.6. Дисплеи на основе светоизлучающих пластиков Светоизлучающие пластики (light emission plastics – LEP) - сложные

полимеры, которые обладают способностью эмитировать фотоны под воз-действием электрического тока, то есть светиться. Поначалу КПД светоизлу-чающих пластиков был крайне низким, и соотношение излучаемого света к затраченной для этого энергии измерялось долями процента. Но в последнее время технология производства светоизлучающего пластика существенно продвинулась вперед, и эффективность этих материалов сравнилась с эффек-тивностью светодиодов. Это позволило создать первые дисплеи на основе светоизлучающих пластиков рис. 2.21.

Рисунок 2.21. Пример первого LEP дисплея

Устройство такого дисплея показано на рис. 2.22.

Рисунок 2.22. Устройство дисплея на основе светоизлучающих пластиков

Основание

Прозрачная защит-ная пленка

Светоизлучающий пластик

Сетка электродов

Сетка прозрачных электродов

Page 39: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

39

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

Дисплеи на основе светоизлучающих пластиков обладают следующи-ми достоинствами:

1. Сверхмалые толщина и масса. 2. Хорошие показатели яркости и контрастности. 3. Высокая четкость изображения. 4. Очень малое энергопотребление. 5. Высокая механическая прочность. 6. Широкий диапазон эксплуатационных температур. Недостатками таких дисплеев являются: 1. Монохромность. 2. Малый срок службы. 2.1.7. Дисплеи «электронная бумага» Первые упоминания о дисплеях данного типа в мире появились в сере-

дине 90-х годов ХХ века. Устройство такого дисплея чрезвычайно просто. Между двумя полимерными пленками находится специальный гелеобразный субстрат, в котором плавает огромное количество очень мелких полимерных шариков двух цветов (обычно черного и белого) рис. 2.23. Технология полу-чения субстрата и шариков засекречена фирмами разработчиками, однако из-вестно, что шарики обладают в субстрате нулевой плавучестью, и шарики разных цветов несут разноименные электрические заряды, которые они со-храняют в течение всего времени жизни дисплея. На наружных поверхностях пленок нанесена сетка пересекающихся электродов. Со стороны экрана эти электроды сделаны прозрачными.

Page 40: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

40

Рисунок 2.23. Устройство дисплея «электронная бумага».

Предположим, что все шарики черного цвета несут положительный заряд, а белого – отрицательный. При отсутствии разности потенциалов на электродах, шарики сохраняют в субстрате заданное ранее положение рис. 2.24.а. Подадим на верхний электрод положительный потенциал, а на ниж-ний – отрицательный. Под действием электростатических сил, шарики нач-нут перемещаться в субстрате. Через некоторое время положительно заря-женные шарики опустятся вниз, а отрицательно заряженные поднимутся на-верх. Таким образом, на экране под пересечением электродов появится белая точка рис. 2.24.б. Поменяв полярность напряжения на электродах, шарики начнут двигаться в противоположном направлении. Положительно заряжен-ные поднимутся наверх, а отрицательно заряженные опустятся вниз. На эк-ране появится черная точка рис. 2.24.в.

Рисунок 2.24. Принцип действия дисплея «электронная бумага».

Дисплеи «электронная бумага» имеют ряд достоинств: 1. Сверхмалая толщина и ничтожная масса. 2. Возможность создания гибких экранов c любым размером диагона-

ли. 3. Сверхмалое энергопотребление за счет отсутствия электрического

тока и отсутствия необходимости в постоянной регенерации изображения.

Основание

Прозрачная поли-мерная пленка

Субстрат с поли-мерными шариками

Сетка электродов

Сетка прозрачных электродов

+ +

+ - - - + - + + +

- - - +

- + + + - - -

+ -

+

-

-

+ а б в

Page 41: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

41

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

5. Высокая контрастность, четкость изображения и разрешение изо-бражения. Изображение выглядит так, словно оно напечатано на листе бума-ги (откуда и происходит название дисплея).

6. Отсутствие стробоскопического эффекта и вредных излучений. К сожалению, у данного дисплея есть и недостатки: 1. Абсолютная монохромность. Дисплей способен отображать только

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

2. Очень высокая инерционность. Время смены изображения для луч-ших типов дисплеев составляет 0.4 сек.

3. Для просмотра изображения требуется внешний источник света. Такие дисплеи наиболее хорошо подходят для отображения информа-

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

2.2. ТРЕХМЕРНЫЕ ДИСПЛЕИ Трехмерные дисплеи не так распространены, как двухмерные. Это свя-

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

2.2.1 Стереоскопические дисплеи Стереоскопические дисплеи используют для построения трехмерного

изображения особенности зрения человека. У человека два глаза, разнесен-ных на небольшое расстояние друг от друга. В результате каждый глаз по-лучает изображение, немного отличающееся от изображения для другого глаза. Мозг человека, анализируя эти два изображения получает информацию о пространственном расположении объектов, и формирует восприятие трех-мерной сцены. Для того, чтобы добиться такого же эффекта при синтезе изо-

Page 42: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

42

бражений необходимо: 1. Сформировать две проекции трехмерной сцены на плоскость экрана

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

чена для него.

Рисунок 2.25. Получение стереоскопического изображения.

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

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

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

Точка на-блюдения

№1

Точка на-блюдения

№2

Трехмерный объект

Проекторы

Проекция для левого глаза

Проекция для правого

глаза

Page 43: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

43

за, которому изображение не предназначено. Такие системы в настоящее время являются лидерами по популярности среди трехмерных стереоскопи-ческих дисплеев, поскольку для них подходит практически любой дисплей, формирование стереоизображений производится программным путем, а стоимость очков существенно ниже, чем стоимость шлема виртуальной ре-альности. Для того, чтобы на таких системах могли отображаться трехмер-ные изображения, построенные с использованием стандартных средств ком-пьютерной графики, многие производители видеоадаптеров выпускают для них специальные стереодрайверы. Так компания NVIDIA выпускает, начи-ная с 2004 г., стереодрайвер для своих видеоадаптеров «Consumer 3D Stereo», который позволяет использовать стереоочки различных производителей рис. 2.26.

Рисунок 2.26. Вид панели настройки стереодрайвера от NVIDIA.

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

Page 44: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

44

Рисунок 2.27. Разделение анаглифических стереоизображений.

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

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

не, который с большой скоростью перемещается по одному из направлений в пространстве. В настоящее время такие дисплеи серийно производит амери-канская фирма Actuality Systems. Принцип работы такого дисплея очень про-стой. Внутри шара находится плоский экран, который вращается со скоро-стью около десяти раз в секунду вокруг вертикальной оси рис. 2.28. На этот экран выводятся последовательные сечения трехмерного изображения, кото-рые сливаются для наблюдателя в одну трехмерную сцену рис. 2.29. Это изо-бражение является истинно трехмерным. Наблюдатели могут рассматривать его с различных сторон и под разными углами, перемещаясь вокруг дисплея.

Page 45: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

45

Рисунок 2.28. Внешний вид сферического дисплея с пространственной механической раз-

верткой.

Рисунок 2.29. Трехмерное изображение формируемое трехмерным дисплеем. Первоначально такой дисплей разрабатывался для моделирования

Page 46: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

46

сложных органических молекул и химических соединений, изображения ко-торых трудно анализировать на двухмерном дисплее. Изображение трехмер-ной сцены может формироваться из приблизительно 116 млн. вокселей (объ-емных точек). Однако стоимость такого устройства слишком высока (около 45 тыс. долл. США), поэтому оно находит применение лишь в отдельных об-ластях науки и техники (например, в оборонной промышленности, при про-ведении выставок, презентаций и аукционов и.т.п.).

3. МАТЕМАТИЧЕСКИЕ ОСНОВЫ МАШИННОЙ ГРАФИКИ 3.1. ПОНЯТИЕ ОДНОРОДНЫХ КООРДИНАТ. На рис. 3.1. изображена прямоугольная система координат с осями x и

w. Тогда любая точка P может быть задана парой координат (x, w). Построим прямую l параллельную оси x и проходящую через точку (0, 1). Эта прямая описывается уравнением w=1 Через любую точку P(x, w), не лежащую на оси x, можно провести прямую OP, которая пересечет прямую l в точке P’(X, 1). Точку P’ можно рассматривать как центральную проекцию точки P на пря-мую l, с центром проекции расположенным в начале координат. Из рис. 3.1 видно, что треугольники OPQ и OP’Q’ – подобны, следовательно:

wx

OQPQ

OQQPX ===

''' .

Все точки (x, w), для которых x=wX, лежат на прямой OP и имеют одну

проекцию на прямую l – P’. Если нас интересуют только координаты проек-ции точки P на прямую l, а не фактические значения x и w, то значение имеет только их отношение. В геометрическом смысле, координатная пара (wX, w) любой точки P, отличной от О на прямой линии OP’, может служить обозна-чением точки P.

Page 47: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

47

Рисунок 3.1. Центральная проекция на плоскости.

В общем случае любая точка (X1, X2, …, Xn) в n-мерном пространстве может быть представлена как точка (wX1, wX2, …, wXn, w) в (n+1)-мерном пространстве. Эта группа из n+1 чисел называется однородными координа-тами точки в n-мерном пространстве. Любую точку в n-мерном пространстве можно представить бесконечным числом наборов однородных координат. Например, точка (5, 7) в двумерном пространстве может быть записана в од-нородных координатах как (5, 7, 1), (15, 21, 3), (500, 700, 100) и т. д.

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

0=+ bYсaX

Заменив X и Y на wx и

wy , получим:

0=+ сwyb

wxa

или 0=++ cwbyax (3.1)

Уравнение (3.1) принято называть однородным, поскольку оно имеет одинаковую структуру в терминах ax, by, cw. Отсюда числа x, y, w и называ-ют однородными координатами точки (X, Y). Если принять, что наша дву-мерная координатная система располагается в плоскости w=1 в координатной системе xyw, то такое уравнение описывает плоскость, проходящую через начало координат и заданную прямую линию на плоскости w=1.

Рассмотрим систему из двух уравнений, каждое из которых описывает прямую линию в двумерном пространстве:

x

w

P

P’

O

l 1

Q

Q’

X x

w

Page 48: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

48

=++=++

.0;0

222

111

cYbXacYbXa (3.2)

Если две прямые параллельны, то они не пересекаются, и не существу-

ет пары чисел (X, Y), являющихся решением данной системы. Заменим координаты X и Y на однородные координаты x, y, w. Получим

следующую систему уравнений:

=++=++

.0;0

222

111

wcybxawcybxa

Уравнения, входящие в систему, можно проинтерпретировать как уравнения плоскостей, проходящих через точку начала координат О. Эта система имеет как минимум одно решение x=y=w=0. Для геометрической ин-терпретации попробуем задать для коэффициентов конкретные значения. Например, заменим систему (3.2) на систему, описывающую две параллель-ные прямые изображенные на рис. 3.2:

=−+=−+

.02464;0632

YXYX (3.3)

Рисунок 3.2. Параллельные прямые на плоскости.

Заменим эту систему уравнений на систему с однородными координа-тами:

x

y

4

2

3 6

Page 49: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

49

=−+=−+

.02464;0632

wyxwyx (3.4)

Эта система эквивалентна системе:

==+.0

;032w

yx

Значит, решение состоит из всех троек вида )0,2,3( kk − , где k – любое число. В трехмерном пространстве эти точки образуют прямую линию, про-ходящую через точки О и (3, 2, 0), причем эта прямая линия представляет со-бой линию пересечения двух плоскостей, заданных уравнениями системы (3.4).

Рассмотрим еще один очень важный аспект применения однородных координат. Для этого определим для каждой прямой в двумерном простран-стве бесконечно удаленную точку, принадлежащую этой прямой, как точку с однородными координатами (x, y, w=0). Действительно, в двумерном про-странстве все точки такого вида представлены одной точкой с координатами

),(wyY

wxX == . При w стремящемся к нулю, X и Y стремятся к бесконечности.

Для прямых линий описываемых уравнениями системы (3.3) бесконеч-но удаленные точки представляются любой тройкой вида )0,2,3( kk − . По-скольку эти тройки являются решением системы уравнений (3.4), то беско-нечно удаленную точку можно считать точкой пересечения двух параллель-ных прямых, изображенных на рис. 3.2. Введение бесконечно удаленной точ-ки позволяет утверждать, что любые две прямые всегда пересекаются в од-ной точке. Поскольку однородные координаты можно расширить для про-странства любой размерности, то и понятие бесконечно удаленной точки можно дать и для пространства любой размерности.

3.2 ВОПРОСЫ ЭЛЕМЕНТАРНОЙ ГЕОМЕТРИИ С

ИСПОЛЬЗОВАНИЕМ ОДНОРОДНЫХ КООРДИНАТ 3.2.1. Геометрические преобразования на плоскости

Page 50: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

50

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

=+=

.';'

yyaxx

Эти уравнения можно интерпретировать двумя способами: 1. Все точки на плоскости xy перемещаются вправо на расстояние a

рис. 3.3.а. 2. Координатные оси x и y перемещаются влево на расстояние a (рис.

3.3.б.

Рисунок 3.3. Перенос точки а, и изменение системы координат б.

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

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

Cистема уравнений

+=+=

.';'

dyyydxxx задает параллельный перенос точки или

системы координат в двумерном пространстве (рис. 3.4). Здесь, dx и dy – рас-стояние, на которое выполняется перенос по координатам x и y соответст-венно.

x

y

O

a P P’

x, x’

y

O

a P

y'

O’ а б

Page 51: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

51

Рисунок 3.4. Параллельный перенос.

Параллельный перенос можно записать в векторной форме P` = P + T, где [ ]yx=P – вектор-строка исходных координат, [ ]''' yx=P – вектор-строка преобразованных координат, [ ]TyTx=T – вектор-строка преобразования пе-реноса (x, y - исходные координаты точки, Tx, Ty – расстояния переноса по соответствующим осям, x`, y` - преобразованные координаты).

Преобразование масштабирования относительно начала координат имеет вид:

==

.';'

ySyyxSxx

Здесь Sx, Sy – коэффициенты масштабирования по осям. Если Sx = Sy, то искажения формы масштабируемого объекта не проис-

ходит. Такое масштабирование называют равномерным (рис. 3.5).

Рисунок 3.5. Равномерное масштабирование. (Sx = Sy = 2).

Если Sx ≠ Sy, форма масштабируемого объекта подвергается искажени-ям. В таком случае говорят о неравномерном масштабировании рис. 3.6.

x x

y y

O O

x x

y y

O O

(x, y) (x’, y’)

Page 52: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

52

Рисунок 3.6. Неравномерное масштабирование. (Sx = 2, Sy = 1).

Выведем систему уравнений, описывающих поворот точек вокруг на-чала координат на заданный угол φ.

Пусть необходимо повернуть точку Р (х, у) вокруг начала координат О на угол φ. Изображение новой точки на рис. 3.7 обозначим через P’ (x’, y’).

Рисунок 3.7. Поворот вокруг начала координат на угол φ.

Существуют такие четыре числа а, b, с, d, такие, что новые координаты х' и y’ могут быть вычислены по значениям старых координат x и у из сле-дующих уравнений:

+=+=

.';'

dycxybyaxx

(3.5) Для получения значений а, b, с, d рассмотрим вначале точку ( ) ( )0,1, =yx

рис. 3.8.а. Полагая x = 1 и y = 0 в уравнениях 3.5, получим:

==

.';'

byax

x

y

O

P(x, y)

P’(x’, y’) φ

x x

y y

O O

Page 53: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

53

a б

Рисунок 3.8. а – поворот точки (1,0); б – поворот точки (0,1) Но в этом простом случае, как это видно из рис. 3.8.а, значения х' и у'

равны соответственно cos φ и sin φ. Тогда будем иметь: а = cos φ ; с = sin φ. Аналогичным образом из рис. 3.8.б следует: b = -sin φ; d = cos φ. Тогда вместо системы уравнений (3.5) можем записать:

+=−=

.cossin';sincos'

ϕϕϕϕ

yxyyxx

(3.6) Система уравнений (3.6) описывает поворот вокруг точки О — начала

системы координат. Если требуется выполнить поворот относительно задан-ной точки ( )00 , yx , то в этих уравнениях можно заменить x на ( )0xx − , y – на ( )0yy − , x’ на ( )0' xx − , y’ – на 0' yy − :

−+−+=−−−+=

−+−=−−−−=−

.cos)(sin)(';sin)(cos)('

.cos)(sin)(';sin)(cos)('

000

000

000

000

ϕϕϕϕ

ϕϕϕϕ

yyxxyyyyxxxx

yyxxyyyyxxxx

Преобразования масштабирования и поворота могут быть записаны в

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

нения: PSP =' , где [ ]yx=P , [ ]''' yx=P ,

=

SySx0

0S .

В матричной записи преобразование поворота точки вокруг начала ко-ординат на угол φ можно записать следующим образом: PRP =' , где

[ ]yx=P , [ ]''' yx=P ,

=ϕϕϕϕ

cossinsincos

R .

Столбцы и строки матрицы поворота представляют собой взаимно ор-

x x

y y

O O

φ

(1, 0)

(-sin φ, cos φ)

φ

(0, 1) (cos φ, sin φ)

Page 54: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

54

тогональные единичные векторы. В самом деле, квадраты длин векторов-строк и столбцов равны единице:

.1cossin;1sin)(cos;1cossin)(

;1sincos

22

22

22

22

=+

=−+

=+−

=+

ϕϕ

ϕϕ

ϕϕ

ϕϕ

Скалярное произведение векторов-строк и векторов-столбцов равно нулю:

.0cossinsincos;0cossin)sin(cos

=−=+−

ϕϕϕϕϕϕϕϕ

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

[ ] [ ] [ ]01cossinsincos)sin(coscossinsincos

sincos 22 =−−+=

− ϕϕϕϕϕϕϕϕϕϕ

ϕϕ .

Произведение второго столбца на матрицу есть:

[ ] [ ] [ ]10cossinsincoscossincossinsincos

cossin 22 =+−=

ϕϕϕϕϕϕϕϕϕϕ

ϕϕ .

Это свойство позволяет сформировать матрицу преобразования, если

известны результаты преобразования. К сожалению, преобразование параллельного переноса нельзя предста-

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

Page 55: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

55

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

[ ] [ ] [ ]00000000 221121

21 =++=

bababbaa .

Таким образом, какие бы значения не имели элементы матрицы преоб-

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

[ ] [ ] [ ]321333222111

321

321

321

00000000 wcwcwcwcbawcbawcbacccbbbaaa

w =++++++=

Видно, что начало координат переместилось в точку с координатами

( )321 wcwcwc . Для того, чтобы выяснить, что это за точка перейдем из сис-темы однородных координат обратно в двумерные прямоугольные:

[ ]

3

2

3

1321 wc

wcwcwcwcwcwc .

Если w ≠ 0, и c3 ≠ 0, то [ ]2133

2

3

1

3

2

3

1 1 cccc

ccc

wcwc

wcwc

. Таким обра-

зом, мы получили промасштабированный с коэффициентом 3

1cпараллельный

перенос начала координат на расстояние с1 по оси x, и на расстояние с2 по оси y. Согласно принципу двойственности, получается, что в системе одно-

Page 56: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

56

родных координат преобразование параллельного переноса может быть представлено в форме матрицы размерностью 3х3.

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

Так матрица для параллельного переноса точек двумерного простран-ства выглядит следующим образом:

=

1010001

dydxT , (3.7)

где dx – смещение по оси х, dy – смещение по оси y. Матрица параллельного переноса начала координат в точку с коорди-

натами ( )00 , yx – следующая:

−−=−

1010001

00

1

yxT . (3.8)

Матрица поворота точек двумерного пространства вокруг начала коор-

динат на заданный угол φ:

−=

1000cossin0sincos

ϕϕϕϕ

R . (3.9)

Матрица поворота осей системы координат на заданный угол φ:

−=−

1000cossin0sincos

1 ϕϕϕϕ

R . (3.10)

Матрица преобразования масштабирования координат точек с мас-

Page 57: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

57

штабными коэффициентами Sx и Sy:

=

1000000

SySx

S . (3.11)

Матрица преобразования масштабирования базисных векторов систе-

мы координат с масштабными коэффициентами Sx и Sy:

=−

100010001

SySx

1S . (3.12)

Запись каждого преобразования в форме произведения матриц позво-

ляет совмещать несколько преобразований в одном. Это возможно благодаря свойству ассоциативности операции перемножения матриц. Согласно ему, в последовательности операций перемножения матриц скобки можно опускать. Например, (AB)С = A(BC) = ABC. Чтобы показать такое совмещение преоб-разований, выведем матрицу для преобразования поворота точек двумерного пространства на угол φ вокруг точки с координатами ( )00 , yx . Для этого вы-полним следующую последовательность геометрических преобразований:

1. Перенесем начало системы координат в точку ( )00 , yx , вокруг которой выполняется поворот.

2. Выполним поворот точек двумерного пространства на угол φ вокруг точки начала новой системы координат.

3. Вернем начало системы координат на старое место. Теперь выведем уравнение для выполнения поворота на угол φ вокруг

точки ( )00 , yx . Это уравнение может быть выражено формулой:

[ ] [ ]M11'' yxyx = ,

где через М обозначена матрица результирующего преобразования размером 3x3.

Матрица параллельного переноса точки О начала координат в точку

Page 58: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

58

( )00 , yx представляется матрицей Т-1 (3.8). Поворот на угол φ относительно точки О’ начала новой системы координат описывается матрицей R (3.9). Возвращение точки О начала системы координат на прежнее место можно представить матрицей Т (3.7).

Теперь найдем матрицу М результирующего преобразования:

[ ] [ ]( )( ) [ ] [ ]MRTTTRT 1111'' 11 yxyxyxyx === −− ,

где

−−+−−==

1cossinsincos0cossin0sincos

'

000000

0

ϕϕϕϕϕϕϕϕ

yxyyxxTRTM .

3.2.2. Параметрическое уравнение прямой на плоскости Пусть на плоскости задана прямая l, проходящая через две заданные

своими координатами точки А(Ах, Ау) и В(Вх, Ву). Возьмем на прямой l про-извольную точку P рис 3.9. Поскольку точки А, В и Р лежат на одной прямой, то вектор tABAP ⋅= , где t – некоторая константа. Отсюда вектор

tABaaAPp ⋅+=+= . Так как abAB −= , получим:

tabap )( −+= . (3.13)

Рисунок 3.9. Прямая на плоскости, проходящая через две точки.

Уравнение (3.13) называют параметрическим уравнением прямой на

x

y

O

B

A

l

P

p b

a

AB

AP

Page 59: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

59

плоскости. Зная значение параметра t можно вычислить соответствующие ему координаты точки P(х, у):

−+=−+=

.)(;)(tAyByAyytAxBxAxx (3.14)

Анализируя уравнения (3.13) и (3.14) можно прийти к выводу, что для

любой точки P, принадлежащей отрезку АВ, значение параметра t будут ле-жать в интервале [0…1].

3.2.2. Точечное нормальное уравнение прямой на плоскости Пусть прямая Lпроходит через точки B и C как показано на рис.3.10.

Найдем вектор n, перпендикулярный к L , тогда для любой точки R , лежащей на прямой L , вектор br − должен быть перпендикулярным к вектору n, по-этому для R справедливо следующее утверждение:

.0)( =− brn (3.15)

Уравнение (3.15) называется точечным нормальным уравнением

прямой на плоскости. Это уравнение отражает тот факт, что скалярное про-изведение вектора ( )br − и вектора n должно равняться нулю, для любой точ-ки R , лежащей на прямой Lи любого вектора n, перпендикулярного к этой прямой.

Рисунок 3.10. Нахождение точечной нормальной формы для уравнения прямой.

B

С

R

n

x

y

O

b

r c

Page 60: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

60

Теперь найдем вектор, который может служить в качестве вектора n. Обозначим буквой ( )ss yx ,=−= bcs - вектор, соединяющий точки B и C . Тогда вектор )','(' ss yx=s , где ss yx −=' , а ss xy =' , может служить в качестве вектора n . Действительно, поскольку скалярное произведение векторов b и 'b равно нулю, ( 0''' =+−=+= ssssssss yxyxyyxxbb ), следовательно 'bb ⊥ . Таким образом, в качестве вектора nможно использовать вектор вида 'sk , где k - некоторая константа не равная нулю. Пусть точка ),( 11 yxB = , а точка ),( 22 yxC = , тогда

),( 1212 yyxxBC −−=−=s , а ),(' 1221 xxyy −−=s . В этом случае точечное нормаль-ное уравнение прямой можно записать в виде:

( ) ( ) ( )( ) 0,,, 111221 =−−− yxyxxxyy . (3.16) Обозначим вектор ( )1221 , xxyy −− как ( )yx nn , . Тогда уравнение (3.16)

можно переписать как: ( ) ( ) ( )( )( )

.0

;0)(;0,,,

11

11

11

=−−+

=+−+

=−

ynxnynxnynxnynxn

yxyxnn

yxyx

yxyx

yx

Обозначим xnx как ax , yny как by , )( 11 ynxn yx +− как c . Тогда уравнение прямой в точечной нормальной форме превратится в неявное уравнение пря-мой на плоскости:

.0=++ cbyax 3.2.2. Детерминантное уравнение прямой на плоскости Преобразуем уравнение (3.16) следующим образом:

( ) ( ) ( )( )( )( )( )( ) ( )( )

( ) ( )( ) ( ) .0

;0;0

;0,,

;0,,,

12211221

111212211121

112121

111221

111221

=−+−+−

=+−−++−−=−−+−−

=−−−−

=−−−

yxyxxxyyyxyxyxxxyyxyxyyx

yyxxxxyyyyxxxxyy

yxyxxxyy

Page 61: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

61

Выражение ( ) ( ) 12211221 yxyxxxyyyx −+−+− является определителем (де-

терминантом) матрицы

111

22

11

yxyxyx

. Отсюда уравнение (3.16) можно записать

в виде:

0111

22

11 =yxyxyx

. (3.17)

Уравнение (3.17) называют детерминантным уравнением прямой на

плоскости. Это уравнение констатирует тот факт, что для любой точки ( )yx, , принадлежащий прямой, проходящей через две различные точки ( )11, yx и ( )22 , yx , вектор ( )1,, yx является линейной комбинацией векторов ( )1,, 11 yx и ( )1,, 22 yx .

3.2.3. Пересечения прямых и отрезков на плоскости

Обозначим через ijkD выражение вида 111

kk

jj

ii

ijk

yxyxyx

D = . Как было видно

из уравнения (3.17), если элементы матрицы с индексами jи k представляют координаты двух разных точек на плоскости, и Dijk = 0, то точка с координа-тами ( )ii yx , лежит на одной прямой с точками с координатами ( )jj yx , , ( )kk yx , . Так как любая прямая делит плоскость на две полуплоскости то значения Dijk ≠ 0 говорит о том, что точка с координатами ( )ii yx , лежит в некоторой полуплоскости относительно прямой, проходящей через точки с координата-ми ( )jj yx , , ( )kk yx , . Если для двух разных точек с координатами ( )ii yx , и ( )nn yx , значения Dijk и Dnjk имеют одинаковые знаки, то это говорит о том, что эти точки лежат в одной полуплоскости. Если значения Dijk и Dnjk имеют разные знаки, то значит, что эти точки лежат в разных полуплоскостях. А это озна-чает, что прямая, проходящая через точки с координатами ( )jj yx , , ( )kk yx , , пе-

ресекает прямую, проходящую через точки с координатами ( )ii yx , и ( )nn yx , . Другими словами, если две прямые проходящие через точки с координатами

Page 62: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

62

( )jj yx , , ( )kk yx , и ( )ii yx , и ( )nn yx , пересекаются, то выполняется условие

DijkDnjk < 0 (3.18)

Выведем условие пересечения двух отрезков P1P2 и P3P4, заданных ко-ординатами своих концов рис 3.11.

Рисунок 3.11. Пересечение двух отрезков.

Для того, чтобы отрезки P1P2 и P3P4 пересекались, необходимо чтобы, как минимум, пересекались прямые, на которых лежат эти отрезки. Отсюда должно выполняться следующее условие:

0234134 <DD (3.19)

Но выполнения условия (3.19) недостаточно для того, чтобы точно оп-

ределить факт пересечения отрезков. На рис. 3.12 показан один из случаев, когда прямые пересекаются, а отрезки – нет.

P3

x

y

O

P1

P2

P4

Page 63: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

63

Рисунок 3.12. Отсутствие пересечения отрезков, при пересечении содержащих их прямых.

Для того, чтобы понять, каким образом точно определить условие пе-ресечения отрезков, необходимо вспомнить тот факт, что пересечение отрез-ков является взаимным. Т.е. если отрезок P1P2 пересекает отрезок P3P4, то отрезок P3P4 тоже пересекает отрезок P1P2. А это значит, что должно также выполняться и условие:

0412312 <DD (3.20)

Объединив условия (3.20) и (3.19) получим тест для проверки пересе-

чения двух отрезков прямых, заданных координатами своих концов:

Отрезки P1P2 и P3P4 пересекаются тогда и только тогда, если

<<

00

412312

234134

DDDD (3.21)

Если условие (3.21) выполняется, то можно найти координаты точки

пересечения отрезков решив следующую систему равнений:

P3

x

y

O

P1

P2

P4

Page 64: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

64

=

=

.0111

;0111

44

33

22

11

yxyxyxyxyxyx

(3.22)

Система (3.22) представляет тот факт, что точка пересечения отрезков принадлежит одновременно обеим прямым, содержащим эти отрезки.

3.2.4. Геометрические преобразования в трехмерном пространстве Если каждая точка P(x, у, z) отображается на точку Р'(x’, у’, z’) в соот-

ветствии с уравнениями:

+=+=+=

.';';'

dzzzdyyydxxx

где dx, dy, dz – константы, то этот процесс называется переносом в

трехмерном пространстве. Такой перенос может быть записан в матричной форме

[ ] [ ]Tzyxzyx =''' , где

=

1010000100001

dzdydx

T (3.23)

Поворот вокруг координатных осей может быть описан матрицей без использования однородных координат. Ради краткости так и будем посту-пать, обращаясь к однородным координатам только в тех случаях, когда они действительно необходимы. Будем использовать правую координатную сис-тему, считая вращение вокруг оси положительным, если оно соответствует положительному направлению этой оси по правилу винта с правой резьбой. Это показано на рис. 3.13.

Page 65: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

65

Рисунок 3.13. Правая система координат.

Рассмотрим поворот вокруг оси z на угол α и для сокращения обозна-чим cos α = с и sin α = s. Тогда можно записать:

[ ] [ ]

−=

=

10000

'''

cssc

zyxzyx

z

z

R

R

Матрицу Rz можно использовать для получения матриц Rx и Ry, опре-деляющих поворот вокруг соответствующих осей, формальным образом, то есть без применения рисунка. Это делается путем циклических перестановок, получаемых заменой каждой из букв x, у, z на последующую, считая, что за буквой z следует буква x.

Матрица Rz превратится в матрицу Rx циклическим переносом каждой строки на одну позицию и затем выполнением аналогичной операции для столбцов:

y

z

x

O

=zR

10000

cssc

− 00100

cssc

− cssc

00

001 xR=

Page 66: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

66

Матрица Rx таким же образом преобразуется в матрицу Ry:

Суммируя сказанное, получим следующие матрицы:

−=

αααα

cossin0sincos0

001

xR (3.25)

−=

αα

αα

cos0sin010

sin0cos

yR (3.26)

−=

1000cossin0sincos

αααα

zR (3.27)

Для поворота точки вокруг оси х на угол α матрица Rx используется

следующим образом: [ ] [ ] xRzyxzyx =''' Матрицы Ry и Rz применяются аналогично. Как объяснялось ранее, уравнения для преобразований могут интер-

претироваться как изменения координат. Перенос точки на определенное расстояние вправо описывается теми же уравнениями, как перенос системы координат на такое же расстояние влево. На практике удобнее перемещать координатную систему вместо точки, но для этого требуется инвертирование матрицы. К счастью, инверсия матриц T, Rx, Ry, Rz может быть записана не-медленно:

=xR

− cssc

00

001

cs

cs

0001

0

cs

sc

0010

0 yR=

Page 67: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

67

−−−

=−

1010000100001

dzdydx

1T (3.28)

−=−

αααα

cossin0sincos0001

1xR (3.29)

−=−

αα

αα

cos0sin010

sin0cos1

yR (3.30)

−=−

1000cossin0sincos

1 αααα

zR (3.31)

Преобразование масштабирования можно записать в матричной форме как [ ] [ ]Szyxzyx =''' , где

=

cb

a

000000

S (3.32)

Здесь а, b и c – коэффициенты масштабирования по соответствующим осям.

Далее, при рассмотрении трехмерных преобразований, в основном, используется общепринятая в векторной алгебре правая система координат.

В некоторых, специально оговариваемых случаях, может использо-ваться левая система координат. В левой системе координат положительны-ми будут повороты по часовой стрелке, если смотреть с положительного конца полуоси. Так, с экраном дисплея обычно связывают именно левую систему координат. Тогда поверхность экрана совмещена с плоскостью XY, Начало системы координат размещается в левом верхнем углу экрана, Ось X направлена влево, Ось Y – вниз, а ось Z – в глубину экрана по направлению от наблюдателя рис. 3.14.

Page 68: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

68

Рисунок 3.14. Левая система координат, связанная с экраном дисплея.

3.2.5. Поворот относительно произвольного вектора Теперь найдем матрицу преобразования, описывающую поворот точек

пространства вокруг любого вектора. Для этого будем полагать, что поворот осуществляется вокруг вектора v, начало которого расположено в точке V0 (x0, y0, z0). Поворот будем производить на угол α (см. рис. 2.11).

Рисунок 3.15. Поворот вокруг произвольного вектора.

Сначала выполним параллельный перенос осей системы координат так, чтобы начало новой системы координат совпало с началом вектора v. Мат-рица данного преобразования в системе однородных координат выглядит

x

y

z

О

x

y

z

O x

z

y x0

z0

y0

v

V0

V

Page 69: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

69

следующим образом:

−−−

=−

1010000100001

000 zyx

1T

После выполнения данного преобразования картина изменится, как по-казано на рис 2.12.

Рисунок 3.16. Начало системы координат перенесено в точку V0.

Повернем систему координат, вокруг оси z на угол θ, так, чтобы на-правление оси x совпало с направлением вектора e - проекцией вектора v на плоскость xy.

Матрица данного преобразования следующая:

=−

1000010000cossin00sincos

1 θθθθ

zR .

Величины cosθ и sinθ найдем исходя из того факта, что треугольник АОЕ – прямоугольный. Здесь, 0xxxv −= , 0yyyv −= .

( ) ( )220

0

0cos

yyxx

xxxOEAO v

−+−

−===

eθ ,

( ) ( )220

0

0sin

yyxx

yyyOEAE v

−+−

−===

eθ .

x

y

z

O

xv

zv

yv v V

E

e

A

θ

Page 70: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

70

После выполнения этого преобразования, вектор v будет лежать в плоскости xy повернутой системы координат, как показано на рис. 3.17.

Рисунок 3.17. После поворота системы координат вокруг оси z.

Теперь, необходимо выполнить поворот системы координат вокруг оси y на угол φ, чтобы ось z совпала по направлению с вектором v. Это преобра-зование задается матрицей следующего вида:

−=−

10000cos0sin00100sin0cos

1

ϕϕ

ϕϕ

yR , где

( ) ( ) ( )20

20

20

0coszzyyxx

zzzOVBO v

−+−+−

−===

vϕ ,

( ) ( )( ) ( ) ( )2

02

02

0

20

20sin

zzyyxx

yyxxOVOE

−+−+−

−+−===

ve

ϕ .

Теперь ось z совпадает по направлению с вектором v, и поворот точек

пространства вокруг вектора v на угол α можно выполнить как поворот на тот же угол вокруг оси z. Матрицу данного преобразования можно записать следующим образом:

=

1000010000cossin00sincos

αααα

αR .

x

y

z

O

zv

v V

E

e

φ

B

Page 71: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

71

После выполнения этого преобразования, точки повернутся на угол α вокруг вектора v. Однако, их новые координаты будут задаваться в системе координат, где ось z совпадает по направлению с вектором v. Чтобы полу-чить координаты точек в исходной системе координат, необходимо выпол-нить преобразования, обратные преобразованиям 111 ,, −−−

yz RRT , в обратном по-

рядке. Матрица преобразования, обратного 1−yR выглядит следующим обра-

зом:

=

10000cos0sin00100sin0cos

ϕϕ

ϕϕ

yR .

Преобразования обратного 1−

zR – следующим образом:

=

1000010000cossin00sincos

θθθθ

zR .

И, наконец, преобразования обратного 1−T :

=

1010000100001

000 zyx

T .

Итак, преобразование поворота точек пространства вокруг заданного

вектора в общем случае включает в себя 7 элементарных геометрических преобразований. Уравнение такого поворота точки P в матричной форме можно записать следующим образом:

,' PMP = где

[ ]1,'','' zyx=P – координаты точки Р после поворота;

Page 72: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

72

]1,,,[ zyx=P – исходные координаты точки Р; TRRRRRTM zyyz α

111 −−−= – матрица общего преобразования.

3.2.6. Линейная интерполяция и твиннинг Рассмотрим следующую систему уравнений:

( )( )( )

+−=+−=+−=

,1,1,1

tBtAPtBtAPtBtAP

zzz

yyy

xxx

где [ ]1..0∈t . Эта система выполняет линейную интерполяцию между точками А и В.

Иными словами x-компонент )(tPx генерирует величину, которая составляет t-ю часть расстояния между xA и xB ; аналогично для y-компонента и z-компонента. Для обозначения такой операции применяется название lerp. Для одного измерения, функция ),,( tbalerp возвращает число, являющееся t-й частью на пути от а до b.

Подобным образом можно вычислить точку )(tP , которая является t-й частью на пути по прямой линии от А до В. Такую точку называют твином («tween») точек A и В в момент t. Каждый компонент такой точки формиру-ется как lerp(…) соответствующих компонентов точек A и В.

3.2.7. Параметрическое уравнение прямой в трехмерном

пространстве Пусть в трехмерном пространстве существует прямая линия, проходя-

щая через две точки С и B, как показано на рис. 3.18.

Page 73: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

73

Рисунок 3.18. Прямая линия в трехмерном пространстве, проходящая через две заданные

точки. Пусть прямая обозначается L, тогда через вектор l=L(t) обозначим по-

ложение точки на прямой L, соответствующее некоторому значению пара-метра t. Используя вектор a = c-b можно записать:

ttL abl +== )( (3.33)

По мере изменения значения t точка )(tL всегда будет находиться на

прямой L. Рассмотрим, где будет располагаться точка )(tL при различных значениях параметра t. При t = 0 положение )(tL соответствует точке В; при t = 1 положение )(tL соответствует точке С. Если t < 0, то )(tL будет лежать на прямой L до точки B; если t > 0, то )(tL будет лежать на прямой L после точ-ки С.

Уравнение (3.33) называют параметрическим уравнением прямой в трехмерном пространстве. Нетрудно видеть, что векторная форма этого уравнения в трехмерном пространстве совпадает по форме с параметриче-ским уравнением прямой на плоскости (3.13). Зная значение параметра t для некоторой точки P на прямой, можно вычислить ее координаты следующим образом:

−+=−+=−+=

.)(;)(;)(

tBCBPtBCBPtBCBP

zzzz

yyyy

xxxx

(3.34)

x

y

z

O

C

B L

L(t)

b c

a l

Page 74: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

74

3.2.8. Параметрическое уравнение плоскости в трехмерном про-

странстве Пусть в трехмерном пространстве задана плоскость α , путем указания

трех неколлинеарных точек BA, , и С, принадлежащих этой плоскости, как показано на рис. 3.19.

Рисунок 3.19. Параметрическое задание плоскости.

Введем три новых вектора. Вектор OA=a , вектор AB −=b и вектор

AC=c . Тогда, любую точку Pна плоскости α можно задать в виде вектора pявляющегося суммой вектора a и линейной комбинации векторов bи c . То есть:

.cbap ts ++= (3.35)

Уравнение (3.35) называется параметрическим уравнением плоскости. Если 0== ts , то уравнение (3.35) задает точку A . Если 1=s ( )0=s , и

0=t ( )1=t , то это уравнение задает точку B ( )C соответственно. Если [ ]1..0∈s и [ ]1..0∈t и 1≤+ ts , то уравнение (3.35) представляет точку, лежа-

щую в пределах треугольника ABC . В этом случае говорят, что этим уравне-нием на плоскости задан треугольный лоскут ABC . Если известны значения параметров t и s, соответствующие некоторой точке α∈P , то ее координаты могут быть вычислены следующим образом:

B

С

A

x y

z

O

a

b

c α

Page 75: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

75

−+−+=−+−+=−+−+=

.)()(;)()(;)()(

tACsABAPtACsABAPtACsABAP

zzzzzz

yyyyyy

xxxxxx

(3.36)

3.2.9. Уравнение плоскости в точечной нормальной форме Плоскости также могут быть представлены в точечной нормальной

форме, откуда легко выводится неявное уравнение плоскости. На рис. 3.20. показана часть плоскости α в трехмерном пространстве, которая задана точ-кой B , принадлежащей α , и вектором n , являющимся вектором нормали к α ( )α⊥n .

Рисунок 3.20. Определение точечного нормального уравнения плоскости. Поскольку вектор нормали к плоскости перпендикулярен этой плоско-

сти, то любой вектор, который принадлежит плоскости, должен быть также перпендикулярен вектору нормали. Пусть на плоскости α задана точка R , тогда вектор BR −=r должен быть перпендикулярен вектору n . Отсюда по-лучим:

0=nr . (3.37)

Уравнение (3.37) называется точечным нормальным уравнением плоскости. Раскрывая скалярное произведение nr , и используя выражение

),,( zyx nnn=n , и ),,( 111 zyxB = и ( )zyxR ,,= , можно преобразовать уравне-

ние (3.37) в уравнение вида:

0)( 111 =++−++ znynxnznynxn zyxzyx .

),,( 111 zyxB

y

O

n

x

z

),,( zyxR r

Page 76: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

76

Обозначив xnx через ax , yny через by , znz через cz и

)( 111 znynxn zyx ++− через d, получим неявное уравнение плоскости:

.0=+++ dcbyax

3.2.10. Пересечение прямой и плоскости в трехмерном

пространстве Пусть в трехмерном пространстве заданы (рис. 3.21): прямая R , в форме параметрического уравнения ttR ca +=)( ; плоскость α , в форме точечного нормального уравнения 0)( =− bpn . Точка Pявляется точкой пересечения прямой Rи плоскости α .

Рисунок 3.21. Пересечение прямой с плоскостью в трехмерном пространстве. Поскольку RP ∈ , то можем записать, исходя из уравнения прямой, что

( ) 00 ttR cap +== . Подставим это выражение для точки P в уравнение плос-кости, и получим следующее утверждение для точки пересечения прямой R с плоскостью α :

.0)( 0 =−+ bcan t (3.38)

Перепишем для удобства уравнение (3.38) в виде:

.0)( 0 =+− tncban Решение этого уравнения относительно 0t будет:

y

O

n

A

a R

P

B p-b

x

z

α

с

p

b

Page 77: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

77

nc

abn )(0

−=t .

Если 0=nc , то прямая R параллельна плоскости и точки пересечения

не существует. Если, к тому же и числитель равен нулю, то прямая R цели-ком лежит в плоскости α .

Когда 0t вычислено, можно определить положение точки пересечения P . Для этого надо подставить найденное значение 0t в уравнение прямой:

( ) 00 ttR cap +== .

4. АЛГОРИТМЫ ОТСЕЧЕНИЯ ГЕОМЕТРИЧЕСКИХ

ОБЪЕКТОВ Если изображение выходит за пределы экрана, то падает эффектив-

ность вычислительной системы, поскольку программа синтеза изображений будет впустую синтезировать изображения объектов модели «мира» или их частей, которые не будут отображены на экране. В некоторых дисплеях вы-ход за пределы экрана приводит к искажению картины, так как координаты просто ограничиваются при достижении ими граничных значений, а не вы-полняется точный расчет координат пересечения (эффект "стягивания" изо-бражения). Некоторые, дисплеи могут просто выйти из строя, если выполня-ется попытка построения изображения за пределами экрана. Все это, особен-но в связи с использованием технологии оконного просмотра, требует вы-полнения отсечения сцены по границам окна видимости.

В простых графических системах достаточно двумерного отсечения, в трехмерных пакетах используется трехмерное отсечение. Последнее выпол-няется в ранее рассмотренных однородных координатах, позволяющих еди-ным образом выполнять геометрические и перспективные преобразования.

Программное исполнение отсечения достаточно медленный процесс, поэтому, в современных видеоадаптерах этот процесс реализуется аппаратно.

4.1. АЛГОРИТМЫ ОТСЕЧЕНИЯ ОТРЕЗКОВ

Page 78: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

78

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

1. Алгоритмы, использующие кодирование концов отрезка или всего отрезка.

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

Представители первого класса алгоритмов - алгоритм Коэна-Сазерленда (Cohen-Sutherland, CS-алгоритм) и FC-алгоритм (Fast Clipping - алгоритм). Представители алгоритмов второго класса - алгоритм Кируса-Бека (Cirrus-Beck, CB - алгоритм) и более поздний алгоритм Лианга-Барски (Liang-Barsky, LB-алгоритм).

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

Рассмотрим два наиболее популярных алгоритмов отсечения отрезков окном.

4.1.1. Двумерный алгоритм Коэна-Сазерленда Этот алгоритм пригоден для окон прямоугольной формы, и он позво-

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

1. Большинство примитивов содержится целиком в большом окне, 2. Большинство примитивов лежит целиком вне относительно малень-

кого окна. Идея алгоритма состоит в следующем: Окно отсечения и прилегающие к нему части плоскости вместе обра-

зуют 9 областей рис. 4.1. Каждой из областей присвоен 4-х разрядный код. Две конечные точки отрезка получают 4-х разрядные двоичные коды, соот-

Page 79: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

79

ветствующие областям, в которые они, попали следующим образом: 0 разряд = 1 – точка над верхним краем окна; 1 разряд = 1 – точка под нижним краем окна; 2 разряд = 1 – точка справа от правого края окна; 3 разряд = 1 – точка слева от левого края окна. Определение того лежит ли отрезок целиком внутри окна или целиком

вне окна выполняется следующим образом: Если коды обоих концов отрезка равны 0 то отрезок целиком внутри

окна, отсечение не нужно, отрезок принимается как целиком видимый (отре-зок AB на рис. 4.1.).

Если результат поразрядной операции «И» кодов обоих концов отрезка не равен нулю, то отрезок целиком вне окна, отсечение не нужно, отрезок от-брасывается как целиком невидимый (отрезок KL на рис. 4.1.)

Если результат поразрядной операции «И» кодов обоих концов отрезка равен нулю, то отрезок, может быть или частично видимым (отрезки CD, EF, GH на рис 4.1.), или целиком невидимым (отрезок IJ на рис 4.1.). Для такого отрезка нужно определить координаты пересечений со сторонами окна и для каждой полученной части определить ее видимость или невидимость. При этом для отрезков CD и IJ потребуется вычисление одного пересечения, для остальных (EF и GH) - двух. При расчете координат точки пересечения, если стороны окна параллельны осям системы координат, то можно определить координату X или Y точки пересечения без проведения вычислений.

Рисунок 4.1. Отсечение по методу Коэна-Сазерленда

При непосредственном использовании описанного выше способа отбо-ра целиком видимого или целиком невидимого отрезка после расчета пересе-чения потребовалось бы вычисление кода расположения точки пересечения. Для примера рассмотрим отрезок CD. Точка пересечения обозначена как P. В силу того, что граница окна считается принадлежащей окну, то можно про-

Page 80: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

80

сто принять только часть отрезка PD, попавшую в окно. Часть же отрезка CP, на самом деле оказавшаяся вне окна, потребует дальнейшего рассмотрения, так как результат поразрядной операции логического «И» кодов точек C и P даст нуль, т.е. отрезок CP нельзя просто отбросить. Для решения этой про-блемы Коэн и Сазерленд предложили заменять конечную точку с ненулевым кодом конца на точку, лежащую на стороне окна, либо на ее продолжении.

В целом алгоритма Коэна-Сазерленда следующий: 1. Рассчитать коды конечных точек отсекаемого отрезка. 2. Если результат поразрядной операции логического «И» кодов ко-

нечных точек не равен нулю, то отрезок целиком вне окна. Он отбрасывается и отсечение закончено.

3. Если оба кода равны нулю, то отрезок целиком видим. Он принима-ется и отсечение закончено.

4. Если начальная точка внутри окна, то она меняется местами с конеч-ной точкой.

5. Анализируется код начальной точки для определения стороны окна с которой есть пересечение и выполняется расчет пересечения. При этом вы-численная точка пересечения заменяет начальную точку.

6. Вычисляется значение кода новой начальной точки. 7. Перейти к пункту 2. 4.1.2 Двумерный алгоритм Кируса-Бека отсечения произвольным

выпуклым многоугольником Рассмотренный выше алгоритм проводил отсечение по прямоугольно-

му окну, стороны которого параллельны осям координат. Это, конечно, наи-более частый случай отсечения. Однако, во многих случаях требуется отсе-чение по произвольному многоугольнику, например, в алгоритмах удаления невидимых частей сцены. В этом случае наиболее удобно использовать па-раметрическое представление прямых, не зависящее от выбора системы ко-ординат.

Из предыдущего пункта ясно, что для выполнения отсечения в пара-метрическом представлении необходимо иметь способ определения ориента-ции удлиненной линии, содержащей отсекаемый отрезок, относительно ли-нии границы – с внешней стороны на внутреннюю или с внутренней на

Page 81: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

81

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

Для этих целей в алгоритме Кируса-Бека, реализующем отсечение от-резков произвольным выпуклым многоугольником, используется вектор внутренней нормали к стороне окна.

Внутренней нормалью Nв в точке А к стороне окна называется нор-маль, направленная в сторону области, задаваемой окном отсечения.

Рассмотрим алгоритм Кируса-Бека подробнее. Так как многоугольник выпуклый, то может быть только две точки пе-

ресечения отрезка с окном. Поэтому надо найти два значения параметра t, соответствующие начальной и конечной точкам видимой части отрезка.

Пусть Ni - внутренняя нормаль к i-й граничной стороны окна, а P = V1 - V0 - вектор, определяющий ориентацию отсекаемого отрезка, тогда ориента-ция отрезка относительно i-й стороны окна определяется знаком скалярного произведения Pi = Ni P.

)( 01ii VVNPN −==iP . (4.1)

При 0<iP отсекаемый отрезок направлен с внутренней на внеш-

нюю стороны i-й граничной стороны окна рис. 4.2.a.

При 0=iP точки 0V и 1V либо совпадают, либо отсекаемый отре-зок параллелен i-й граничной стороны окна рис. 4.2.б.

(4.2)

При 0>iP отсекаемый отрезок направлен с внешней на внутрен-нюю сторону i-й граничной стороны окна рис. 4.2.в.

a Изнутри наружу

б Параллельно границе

в Снаружи внутрь

Рисунок 4.2. Ориентация отсекаемого отрезка относительно стороны окна. Для определения расположения точки относительно окна вспомним

параметрическое представление отсекаемого отрезка:

Page 82: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

82

.10;)()( 010 ≤≥−+= ttVVVtV (4.3) Рассмотрим теперь скалярное произведение внутренней нормали Ni к i-

й границе на вектор Q(t) = V(t) - Fi, начинающийся в начальной точке ребра окна и заканчивающийся в некоторой точке V(t) удлиненной линии.

))(( iii FVNQN −== tQi для i = 1,2,3… (4.4) Аналогично предыдущему имеем рис. 4.3: При Qi < 0 точка V(t) лежит с внешней стороны границы При Qi = 0 точка V(t) лежит на самой границе (4.5) При Qi > 0 точка V(t) лежит с внутренней стороны границы

a

Точка V вне окна

б

Точка V на границе окна

в

Точка V внутри окна Рисунок 4.3. Расположение точки относительно окна.

Подставляя в (4.4) параметрическое представление (4.3), получим ус-ловие пересечения отрезка с границей окна:

Ni ( V0 +(V1-V0)t-Fi ) = 0 (4.6)

Раскрывая скобки, получим:

Используя (4.1) и (4.4) перепишем (4.6):

Разрешая (4.8) относительно t, получим:

Ni( V0- Fi )+Ni(V1-V0) t = 0. (4.7)

.)( ii QtPt +=+ QNPN ii (4.8)

Page 83: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

83

Уравнение (4.9) и используется для вычисления значений параметров, соответствующих начальной и конечной точкам видимой части отрезка.

Как следует из (4.2), Pi равно нулю, если отрезок либо вырожден в точ-ку, либо параллелен границе окна. В этом случае следует проанализировать знак Qi и принять или не принять решение об отбрасывании отрезка целиком в соответствии с условиями (4.2).

Если же Pi не равно 0, то уравнение (4.9) используется для вычисления значений параметров t, соответствующих точкам пересечений удлиненной линии с линиями границ.

Алгоритм построен следующим образом: Искомые значения параметров t0 и t1 точек пересечения инициализи-

руются значениями 0 и 1, соответствующими началу и концу отсекаемого отрезка.

Затем в цикле для каждой i-й стороны окна отсечения вычисляются значения скалярных произведений, входящих в (4.8).

Если очередное Pi равно 0, то отсекаемый отрезок либо вырожден в точку, либо параллелен i-й стороне окна. При этом достаточно проанализи-ровать знак Qi. Если Qi < 0, то отрезок вне окна и отсечение закончено иначе рассматривается следующая сторона окна.

Если же Pi не равно 0, то по (4.9) можно вычислить значение параметра t для точки пересечения отсекаемого отрезка с i-й границей. Так как отрезок V0V1 соответствует диапазону 0 ≤ t ≤ 1, то все решения, выходящие за дан-ный диапазон следует отбросить. Выбор оставшихся решений определяется знаком Pi.

Если Pi < 0, т.е. удлиненная линия направлена с внутренней на внеш-нюю стороны граничной линии, то ищутся значения параметра для конечной точки видимой части отрезка. В этом случае определяется минимальное зна-чение из всех получаемых решений. Оно даст значение параметра t1 для ко-нечной точки отсеченного отрезка. Если текущее полученное значение t1 окажется меньше, чем t0, то отрезок отбрасывается, так как нарушено усло-вие t0 ≤ t1.

Если же Pi > 0, т.е. удлиненная линия направлена с внешней на

PNQN

i

i−=−=i

i

PQt при 0≠iP , i = 1,2,3,… (4.9)

Page 84: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

84

внутреннюю стороны граничной линии, то ищутся значения параметра для начальной точки видимой части отрезка. В этом случае определяется макси-мальное значение из всех получаемых решений. Оно даст значение парамет-ра t0 для начальной точки отсеченного отрезка. Если текущее полученное значение t0 окажется больше, чем t1, то отрезок отбрасывается, так как нару-шено условие t0 ≤ t1.

На заключительном этапе алгоритма значения t0 и t1 используются для вычисления координат точек пересечения отрезка с окном. При этом, если t0 = 0, то начальная точка осталась V0 и вычисления не нужны. Аналогично, если t1 = 1, то конечная точка осталась V1 и вычисления также не нужны.

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

4.2. ОТСЕЧЕНИЕ МНОГОУГОЛЬНИКА Будем называть многоугольник, используемый в качестве окна отсече-

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

давать один или несколько замкнутых многоугольников рис. 4.4. При этом могут быть добавлены новые ребра, а имеющиеся или сохранены или разде-лены или даже отброшены.

Рисунок 4.4. Отсечение окном PQRS многоугольников ABCDEFGHIJ и KLMN

4.2.1 Алгоритм Сазерленда-Ходжмана

Page 85: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

85

Простой метод решения проблемы охвата отсекаемым многоугольни-

ком вершины окна предлагается в алгоритме Сазерленда-Ходжмана, когда весь многоугольник последовательно отсекается каждой границей окна, как это показано на рис. 4.5.

Рисунок 4.5. Последовательное отсечение многоугольника сторонами окна. При отсечении ребра, соединяющего очередную пару вершин K и L,

возможны 4 случая взаимного расположения рис. 4.6: а) ребро на внутренней стороне границы, б) ребро выходит из окна наружу, в) ребро на внешней стороне границы, г) ребро входит снаружи в окно.

Рисунок 4.6. Относительные расположения ребра и границы окна.

В случае а в результат добавляется вершина L. В случае б в результат заносится S - точка пересечения ребра с границей. В случае в нет вывода. В случае г выдаются точка пересечения S и конечная точка ребра L.

Для определения взаимного расположения и направленности использу-ется векторное произведение вектора P1P2, проведенного из начальной в ко-нечную точку текущего ребра окна, на вектор P1S из начальной точки теку-щего ребра окна в очередную вершину S многоугольника рис. 4.7.

Page 86: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

86

Рисунок 4.7. Определение взаимного расположения окна и вершины

Если P1P2×P1S < 0, то поворот от P1P2 к P1S по часовой стрелке, т.е. точка S внутри окна. Если P1P2×P1S > 0, то поворот от P1P2 к P1S против часовой стрелки, т.е. точка S вне окна.

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

4.2.2. Алгоритм отсечения многоугольника Вейлера-Азертона В предыдущем разделе был рассмотрен алгоритм отсечения много-

угольника, последовательно отсекающий произвольный (как выпуклый, так и невыпуклый) многоугольник каждой из сторон выпуклого окна. Зачастую же требуется отсечение по невыпуклому окну. Кроме того рассмотренный алго-ритм может генерировать лишние стороны для отсеченного многоугольника, проходящие вдоль ребра окна отсечения. Далее рассматриваемый алгоритм Вейлера-Азертона свободен от указанных недостатков ценой заметно боль-шей сложности и меньшей скорости работы.

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

В случае пересечения границ и отсекаемого многоугольника и окна возникают точки двух типов:

1. Входные точки, когда ориентированное ребро отсекаемого много-угольника входит в окно.

2. Выходные точки, когда ребро отсекаемого многоугольника идет с

Page 87: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

87

внутренней стороны на внешнюю сторону окна. Общая схема алгоритма Вейлера-Азертона для определения части от-

секаемого многоугольника, попавшей в окно, следующая: 1. Строятся списки вершин отсекаемого многоугольника и окна. 2. Отыскиваются все точки пересечения. При этом расчете касания не

считаются пересечением, т.е. когда вершина или ребро отсекаемого много-угольника инцидентна или совпадает со стороной окна рис. 4.8. и 4.9.

Рисунок 4.8. Случаи не считающиеся пересечением.

Рисунок 4.9. Частные случаи пересечения. Точки 1-4 считаются пересечением. Точки 5,6

не считаются пересечением. Списки координат вершин отсекаемого многоугольника и окна допол-

няются новыми вершинами - координатами точек пересечения. Причем если точка пересечения Pk находится на ребре, соединяющем вершины Vi, Vj, то последовательность точек Vi, Vj превращается в последовательность Vi, Pk, Vj. При этом устанавливаются двухсторонние связи между одноименными точками пересечения в списках вершин отсекаемого многоугольника и окна.

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

Определение части обрабатываемого многоугольника, попавшей в окно выполняется следующим образом:

Если не исчерпан список входных точек пересечения, то выбираем очередную входную точку.

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

Page 88: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

88

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

Используя двухстороннюю связь точек пересечения, переключаемся на список вершин обрабатываемого многоугольника.

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

Модификация этого алгоритма для определения части отсекаемого многоугольника, находящейся вне окна, заключается в следующем:

1. Исходная точка пересечения берется из списка выходных точек. 2. Движение по списку вершин окна выполняется в обратном порядке,

т.е. так чтобы внутренняя часть отсекателя была слева. На рис. 4.10 иллюстрируется отсечение многоугольника ABCDEFGHI

окном PQRS по алгоритму Вейлера-Азертона.

Рисунок 4.10. Отсечение по алгоритму Вейлера-Азертона.

5. АЛГОРИТМЫ РАСТРОВОЙ ГРАФИКИ 5.1. АЛГОРИТМЫ ВЫЧЕРЧИВАНИЯ ОТРЕЗКОВ Поскольку растровое изображение представляет собой матрицу дис-

кретных элементов (точек растра), нельзя непосредственно провести отрезок из одной точки в другую. Процесс определения точек растра, наилучшим об-разом аппроксимирующих заданный отрезок, называется разложением в растр. Для горизонтальных, вертикальных и наклоненных под углом 45° от-резков выбор растровых элементов очевиден. При любой другой ориентации

Page 89: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

89

выбрать нужные элементы труднее. 5.1.1. Цифровой дифференциальный анализатор и алгоритм Бре-

зенхема для вычерчивания отрезков Существует множество алгоритмов разложения отрезков в растр. Наи-

более простым является цифровой дифференциальный анализатор (ЦДА). Один из методов разложения отрезка в растр состоит в решении дифферен-циального уравнения, описывающего этот процесс. Для прямой линии име-ем:

constdxdy

= или 12

12

xxyy

xy

−−

=∆∆ .

Решение представляется в виде:

xxxyyyy

yyy

ii

ii

∆−−

+=

∆+=

=

=

12

122

1

(5.1)

где x1, y1 и x2, y2 - концы разлагаемого отрезка и yi – значение y для

очередного шага вдоль отрезка. Фактически уравнение (5.1.) представляет собой рекуррентное соотношение для последовательных значений y вдоль нужного отрезка.

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

5.1.2. Алгоритм Брезенхема рисования линии

В 1965 году Брезенхеймом был предложен простой целочисленный ал-горитм для растрового построения отрезка. В алгоритме используется управ-ляющая переменная di, которая на каждом шаге пропорциональна разности между s и t (см. рис.2.4.1). На рис. 5.1. приведен i-ый шаг, когда пиксел Pi-1

Page 90: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

90

уже найден как ближайший к реальному изображаемому отрезку, и теперь требуется определить, какой из пикселов должен быть установлен следую-щим: Ti или Si.

Если s<t, то Si ближе к отрезку и необходимо выбрать его; в противном случае ближе будет Ti. Другими словами, если s-t<0, то выбирается Si; в про-тивном случае выбирается Ti.

Рисунок 5.1. Построение отрезка прямой линии.

Изображаемый отрезок проводится из точки (x1, y1) в точку (x2, y2). Пусть первая точка находится ближе к началу координат, тогда перенесем обе точки, T(x1, y1) так, чтобы начальная точка отрезка оказалась в начале координат, тогда конечная окажется в (∆ x, ∆ y), где ∆ x= x2- x1 , ∆ y= x2- x1. Уравнение прямой теперь имеет вид y=x⋅ ∆ y/∆x. Из рисунка следует, что

( ) ( )11;1 +∆∆

−+=−+∆∆

= rxyqtqr

xys

поэтому

( ) 1212 −−+

∆∆

=− qrxyts

помножим на ∆ x:

( ) ( ) xyxqrytsx ∆−∆+∆⋅−⋅∆=−∆ 22

так как ∆ x>0, величину ∆ x(s-t) можно использовать в качестве крите-рия для выбора пиксела. Обозначим эту величину di :

( ) xyxyxyd iii ∆−∆+∆⋅−⋅∆= −− 22 11

Page 91: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

91

так как r = xi-1, q = yi-1, получаем: ( ) ( )111 22 −−+ −∆−−∆=−=∆ iiiiiii yyxxxydd Известно, что xI - xi-1=1.

Если di >= 0, то выбираем Ti, тогда ( )xyi ∆−∆=∆ 2

Если di <0, то выбираем Si, тогда yi ∆=∆ 2 Таким образом, мы получили итеративную формулу для вычисления

критерия di. Начальное значение d1=2∆y-∆ x.

5.2. АЛГОРИТМЫ ПОСТРОЕНИЯ ОКРУЖНОСТИ

Рассмотрим окружность с центром в начале координат, для которой x2+y2=R2, или в параметрической форме:

1. x=R⋅ cos(a); 2. y=R⋅ sin(a). 5.2.1 Алгоритм Брезенхема генерации окружности

Брезенхем разработал алгоритм генерации окружности на том же

принципе, что и для рисования линии. Будем рассматривать сегмент окружности, соответствующий x=x0..

x0+R/sqrt(2). На каждом шаге выбираем точку, ближайшую к реальной ок-ружности. В качестве ошибки возьмем величину D(Pi)=(x2

i+ y2i) – R2.

Рассмотрим рис. 5.2 , на котором показаны различные возможные спо-собы прохождения истинной окружности через сетку пискселов. Пусть пик-сел Pi-1 уже найден как ближайший к реальной изображенной окружности, и теперь требуется определить, какой из пикселов должен быть установлен следующим: Ti или Si. Для этого определим точку, которой соответствует минимальная ошибка:

D(Si)=((q+1)2+ p2 ) – R2, D(Ti)=((q+1)2+ (p+1)2 ) – R2.

Page 92: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

92

Рисунок 5.2. Различные варианты прохождения окружности через сетку пикселей.

Если |D(Si)| < |D(Ti)|, то выбираем Si, иначе - Ti. Введем величину di =

|D(Si)| - |D(Ti)|, тогда Si выбирается при di < 0, иначе выбирается Ti. Если рас-сматривать только часть окружности, дугу от 00 до 450, то D(Si) > 0 так как точкаSi лежит за пределами окружности, а D(Ti) < 0, так как Ti находится внутри окружности, поэтому

di = D(Si) + D(Ti).

Алгебраические вычисления, аналогичные тем, которые проводились

для линии, приводят к результату:

d1=3-2R. Если выбираем Si (когда di < 0 ),

∆i=4xi-1+6;

если выбираем Ti (когда di >=0 ),

∆ i=4(xi-1yi-1) +10.

Алгоритм хорош тем, что отсутствуют операции с плавающей точкой,

а также операции деления и извлечения корня.

Page 93: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

93

5.3 ЗАКРАСКА МНОГОУГОЛЬНИКА В большинстве приложений используется одно из существенных дос-

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

следующем разделе будут рассмотрены алгоритмы заливки области. 5.1. Простейший алгоритм заполнения многоугольника Простейший способ заполнения многоугольника, заданного координа-

тами вершин, заключается в определении принадлежит ли текущий пиксел внутренней части многоугольника. Если принадлежит, то пиксел заносится.

Определить принадлежность пиксела многоугольнику можно, напри-мер, подсчетом суммарного угла с вершиной на пикселе при обходе контура многоугольника. Если пиксел внутри, то угол будет равен 360°, если вне - 0° рис. 5.3.

Рисунок 5.3. Определение принадлежности пиксела многоугольнику.

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

5.3.2 Алгоритм построчного заполнения Реально используются алгоритмы построчного заполнения, основан-

ные на том, что соседние пикселы в строке скорее всего одинаковы и меня-ются только там где строка пересекается с ребром многоугольника. Это на-зывается когерентностью растровых строк (строки сканирования Yi, Yi+1, Yi+2 на рис. 5.4. При этом достаточно определить X-координаты пересече-

Page 94: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

94

ний строк сканирования с ребрами. Пары отсортированных точек пересече-ния задают интервалы заливки.

Рисунок 5.4. Построчная закраска многоугольника.

Кроме того, если какие-либо ребра пересекались i-й строкой, то они скорее всего будут пересекаться также и строкой i+1. (строки сканирования Yi и Yi+1 на рис. 0.2). Это называется когерентностью ребер. При переходе к новой строке легко вычислить новую X-координату точки пересечения реб-ра, используя X-координату старой точки пересечения и тангенс угла накло-на ребра:

Xi+1 = Xi + 1/k

тангенс угла наклона ребра = k = dy/dx, так как dy = 1, то 1/k = dx. Смена же количества интервалов заливки происходит только тогда, ко-

гда в строке сканирования появляется вершина. Учет когерентности строк и ребер позволяет построить для заполнения

многоугольников различные высокоэффективные алгоритмы построчного сканирования. Для каждой строки сканирования рассматриваются только те ребра, которые пересекают строку. Они задаются списком активных ребер (САР). При переходе к следующей строке для пересекаемых ребер перевы-числяются X-координаты пересечений. При появлении в строке сканирова-ния вершин производится перестройка САР. Ребра, которые перестали пере-секаться, удаляются из САР, а все новые ребра, пересекаемые строкой зано-сятся в него.

Page 95: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

95

Общая схема алгоритма, динамически формирующего список актив-ных ребер и заполняющего многоугольник снизу-вверх, следующая:

1. Подготовить служебные целочисленные массивы Y-координат вер-шин и номеров вершин.

2. Совместно отсортировать Y-координаты по возрастанию и массив номеров вершин для того, чтобы можно было определить исходный номер вершины.

3. Определить пределы заполнения по оси Y - Y_мin и Y_max. Стартуя с текущим значением Y_tek = Y_min, исполнять пункты 4-9 до завершения раскраски.

4. Определить число вершин, расположенных на строке Y_tek - теку-щей строке сканирования.

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

Для каждого ребра в список активных ребер заносятся: а. Максимальное значение Y-координаты ребра, б. Приращение X-координаты при увеличении Y на 1, в. Начальное значение X-координаты. Если обнаруживаются горизонтальные ребра, то они просто закраши-

ваются и информация о них в список активных ребер не заносится. Если после этого обнаруживается, что список активных ребер пуст, то

заполнение закончено. 6. По списку активных ребер определяется Y_след - Y-координата

ближайшей вершины. (Вплоть до Y_след можно не заботиться о модифика-ции САР а только менять X-координаты пересечений строки сканирования с активными ребрами).

7. В цикле от Y_tek до Y_след: а. Выбрать из списка активных ребер и отсортировать X-координаты

пересечений активных ребер со строкой сканирования; б. Определить интервалы и выполнить закраску; в. Заново вычислить координаты пересечений для следующей строки

сканирования. 8. Проверить, не достигнута ли максимальная Y-координата. Если дос-

тигнута, то заливка закончена. 9. Очистить список активных ребер от ребер, закончившихся на строке

Page 96: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

96

Y_след и перейти к пункту 4. 5.4 ЗАКРАСКА ОБЛАСТЕЙ Для приложений, связанных в основном с интерактивной работой, чсто

используются алгоритмы заполнения области с затравкой. При этом тем или иным образом задается заливаемая (перекрашивае-

мая) область, код пиксела, которым будет выполняться заливка и начальная точка в области, начиная с которой начнется заливка.

По способу задания области делятся на два типа: 1. гранично-определенные, задаваемые своей (замкнутой) границей та-

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

2. внутренне-определенные, нарисованные одним определенным ко-дом пиксела. При заливке этот код заменяется на новый код закраски.

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

Заливаемая область или ее граница - некоторое связное множество пикселов. По способам доступа к соседним пикселам области делятся на 4-х и 8-ми связные. В 4-х связных областях доступ к соседним пикселам осуще-ствляется по четырем направлениям - горизонтально влево и вправо и в вер-тикально вверх и вниз. В 8-ми связных областях к этим направлениям добав-ляются еще 4 диагональных. Используя связность мы может, двигаясь от точки затравки, достичь и закрасить все пикселы области.

Page 97: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

97

Важно отметить, что для 4-х связной прямоугольной области граница 8-ми связна рис. 5.5.а и наоборот у 8-ми связной области граница 4-х связна рис. 5.5.б. Поэтому заполнение 4-х связной области 8-ми связным алгорит-мом может привести к "просачиванию" через границу и заливке пикселов в примыкающей области.

В общем, 4-х связную область мы можем заполнить как 4-х, так и 8-ми связным алгоритмом. Обратное же неверно. Так область на рис. 5.5.а мы мо-жем заполнить любым алгоритмом, а область на рис. 5.5.б, состоящую из двух примыкающих 4-х связных областей можно заполнить только 8-ми связным алгоритмом.

Рисунок 5.5. Связность областей и их границ

5.4.1. Рекурсивный метод закраски с затравочной точкой Метод прост для программирования, однако крайне неэффективен. От

затравочной точки внутри области просматривают все соседние точки. Если они не граничные, их закрашивают и помещают в буфер. Далее точки по од-ной вынимают из буфера, и если точка не является граничной и закрашен-ной, выполняют те же действия. Блок-схема алгоритма представлена на рис. 5.6.

Page 98: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

98

не пуст пуст БУФЕР

закрашена не закрашена т. (х, у)

Начало

Затравочную точку (х0 ,у0)помещаем в буфер (LIFO, FIFO)

Конец

Извлекаем (.) (х,у)

Холостой пробег до левой границы т. (х0,у)

Поместить в буфер т. (х0, у+1) ит. (х0, у-1), если они не закрашены

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

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

Рисунок 5.6. Блок-схема рекурсивного алгоритма закрашивания с затравочной точкой.

5.4.2 Построчный алгоритм заливки с затравкой Использует пространственную когерентность следующим образом: 1. Пикселы в строке меняются только на границах; 2. При перемещении к следующей строке размер заливаемой строки

скорее всего или неизменен или меняется на 1 пиксел. Таким образом, на каждый закрашиваемый фрагмент строки в стеке

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

Последовательность работы алгоритма для гранично определенной об-ласти следующая:

1. Координата затравки помещается в стек, затем до исчерпания стека выполняются пункты 2-4.

2. Координата очередной затравки извлекается из стека и выполняется максимально возможное закрашивание вправо и влево по строке с затравкой, т.е. пока не встретится граничный пиксел. Пусть это Хлев и Хправ, соответ-ственно.

Page 99: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

99

3. Анализируется строка ниже закрашиваемой в пределах от Хлев до

Хправ и в ней находятся крайние правые пикселы всех незакрашенных фраг-ментов. Их координаты заносятся в стек.

4. Те же самые действия выполняются для строки, расположенной вы-ше закрашиваемой.

6 УДАЛЕНИЕ НЕВИДИМЫХ ПОВЕРХНОСТЕЙ 6.1. АЛГОРИТМ УДАЛЕНИЯ НЕВИДИМЫХ ПОВЕРХНОСТЕЙ

НА ОСНОВЕ Z-БУФЕРА Алгоритм предложен Эдом Кэтмулом и представляет собой обобщение

буфера кадра. Обычный буфер кадра хранит коды цвета для каждого пиксела в пространстве изображения. Идея алгоритма состоит в том, чтобы для каж-дого пиксела дополнительно хранить еще и координату Z или глубину. При занесении очередного пиксела в буфер кадра значение его Z-координаты сравнивается с Z-координатой пиксела, который уже находится в буфере. Ес-ли Z-координата нового пиксела больше, чем координата старого, т.е. он ближе к наблюдателю, то атрибуты нового пиксела и его Z-координата зано-сятся в буфер, если нет, то ни чего не делается.

Этот алгоритм наиболее простой из всех алгоритмов удаления невиди-мых поверхностей, но требует большого объема памяти. Данные о глубине для реалистичности изображения обычно достаточно иметь с разрядностью порядка 20 бит. В этом случае при изображении нормального телевизионного размера в 768×576 пикселов для хранения Z-координат необходим объем па-мяти порядка 1 Мбайта. Суммарный объем памяти при 3 байтах для значений RGB составит более 2.3 Мбайта.

Время работы алгоритма не зависит от сложности сцены. Многоуголь-ники, составляющие сцену, могут обрабатываться в произвольном порядке. Для сокращения затрат времени нелицевые многоугольники могут быть уда-лены. По сути дела алгоритм с Z-буфером - некоторая модификация уже рас-смотренного алгоритма заливки многоугольника. Если используется по-строчный алгоритм заливки, то легко сделать пошаговое вычисление Z-координаты очередного пиксела, дополнительно храня Z-координаты его

Page 100: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

100

вершин и вычисляя приращение dz Z-координаты при перемещении вдоль X на dx, равное 1. Если известно уравнение плоскости, в которой лежит обра-батываемый многоугольник, то можно обойтись без хранения Z-координат вершин. Пусть уравнение плоскости имеет вид:

Ax + By + Cz + D = 0.

Тогда при C не равном нулю:

z = -(A·x + B·y + D)/C Найдем приращение Z-координаты пиксела при шаге по X на dx, пом-

ня, что Y очередной обрабатываемой строки - константа.

dz = -(A·(x+dx) + D)/C + (A·x + D)/C = -A·dx/C Но dx = 1, поэтому

dz = -A/C. Основной недостаток алгоритма с Z-буфером - дополнительные затра-

ты памяти. Для их уменьшения можно разбивать изображение на несколько прямоугольников или полос. В пределе можно использовать Z-буфер в виде одной строки. Понятно, что это приведет к увеличению времени, так как ка-ждый прямоугольник будет обрабатываться столько раз, на сколько областей разбито пространство изображения. Уменьшение затрат времени в этом слу-чае может быть обеспечено предварительной сортировкой многоугольников на плоскости.

Другие недостатки алгоритма с Z-буфером заключаются в том, что так как пикселы в буфер заносятся в произвольном порядке, то возникают труд-ности с реализацией эффектов прозрачности или просвечивания и устране-нием лестничного эффекта с использованием предфильтрации, когда каждый пиксел экрана трактуется как точка конечного размера и его атрибуты уста-навливаются в зависимости от того какая часть пиксела изображения попада-ет в пиксел экрана. Но другой подход к устранению лестничного эффекта,

Page 101: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

101

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

Общая схема алгоритма с Z-буфером выглядит следующим образом: 1. Инициализировать кадровый и Z-буфера. Кадровый буфер закраши-

вается фоном. Z-буфер закрашивается минимальным значением Z. 2. Выполнить преобразование каждого многоугольника сцены в рас-

тровую форму. При этом для каждого пиксела вычисляется его глубина z. Если вычисленная глубина больше, чем глубина, уже имеющаяся в Z-буфере, то занести в буфера атрибуты пиксела и его глубину, иначе никаких занесе-ний не выполнять.

3. Выполнить, если это было предусмотрено, усреднение изображения с понижением разрешения.

6.1.1. Построчный алгоритм с Z-буфером Рассмотрим теперь алгоритм с Z-буфером размером в одну строку, ко-

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

Общая схема такого алгоритма следующая: 1. Подготовка данных. Для каждого многоугольника определить максимальную Y-

координату. Занести многоугольник в группу многоугольников, соответствующую

данной Y-координате. 2. Собственно заливка.

Page 102: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

102

6.2 АЛГОРИТМ РАЗБИЕНИЯ ОБЛАСТИ ВАРНОКА Алгоритм работает в пространстве изображения и анализирует область

на экране дисплея (окно) на наличие в них видимых элементов. Если в окне нет изображения, то оно просто закрашивается фоном. Если же в окне имеет-ся элемент, то проверяется достаточно ли он прост для визуализации. Если объект сложный, то окно разбивается на более мелкие, для каждого из кото-рых выполняется тест на отсутствие и/или простоту изображения. Рекурсив-ный процесс разбиения может продолжаться до тех пор пока не будет дос-тигнут предел разрешения экрана.

Можно выделить 4 случая взаимного расположения окна и много-угольника рис. 6.1.:

а. многоугольник целиком вне окна, б. многоугольник целиком внутри окна, в. многоугольник пересекает окно, г. многоугольник охватывает окно.

а б в г Рисунок 6.1. Соотношения между окном экрана (сплошная рамка) и многоугольником

(штриховая рамка) В четырех случаях можно сразу принять решение о правилах закраски

области экрана: 1. все многоугольники сцены - внешние по отношению к окну. В этом

случае окно закрашивается фоном; 2. имеется всего один внутренний или пересекающий многоугольник.

В этом случае все окно закрашивается фоном и затем часть окна, соответст-вующая внутреннему или пересекающему окну закрашивается цветом мно-гоугольника;

3. имеется единственный охватывающий многоугольник. В этом случае окно закрашивается его цветом.

Page 103: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

103

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

В любых других случаях процесс разбиения окна продолжается. Легко видеть, что при растре 1024×1024 и делении стороны окна пополам требуется не более 10 разбиений. Если достигнуто максимальное разбиение, но не об-наружено ни одного из приведенных выше четырех случаев, то для точки с центром в полученном минимальном окне (размером в пиксел) вычисляются глубины оставшихся многоугольников и закраску определяет многоуголь-ник, наиболее близкий к наблюдателю. При этом для устранения лестнично-го эффекта можно выполнить дополнительные разбиения и закрасить пиксел с учетом всех многоугольников, видимых в минимальном окне.

Первые три случая идентифицируются легко. Последний же случай фактически сводится к поиску охватывающего многоугольника, перекры-вающего все остальные многоугольники, связанные с окном. Проверка на та-кой многоугольник может быть выполнена следующим образом: в угловых точках окна вычисляются Z-координаты для всех многоугольников, связан-ных с окном. Если все четыре такие Z-координаты охватывающего много-угольника ближе к наблюдателю, чем все остальные, то окно закрашивается цветом соответствующего охватывающего многоугольника. Если же нет, то мы имеем сложный случай и разбиение следует продолжить.

Очевидно, что после разбиения окна охватывающие и внешние много-угольники наследуются от исходного окна. Поэтому необходимо проверять лишь внутренние и пересекающие многоугольники.

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

Проверка на то что многоугольник внешний или внутренний относи-тельно окна для случая прямоугольных окон легко реализуется использова-нием прямоугольной оболочки многоугольника и сравнением координат. Для внутреннего многоугольника должны одновременно выполняться условия:

Xmin і Wл и Xmax Ј Wп и Ymin і Wн и Ymax Ј Wв, здесь Xmin,Xmax,Ymin,Ymax - ребра оболочки

Page 104: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

104

Wл, Wп, Wн, Wв - ребра окна Для внешнего многоугольника достаточно выполнение любого из сле-

дующих условий: Xmin > Xп, Xmax < Wл, Ymin > Wв, Ymax < Wн Таким способом внешний многоугольник, охватывающий угол окна не

будет идентифицирован как внешний рис. 6.2.

Рисунок 6.2. Ошибочное определение внешнего многоугольника как пересекающего при

использовании прямоугольной оболочки Проверка на пересечение окна многоугольником может быть выполне-

на проверкой на расположение всех вершин окна по одну сторону от прямой, на которой расположено ребро многоугольника. Пусть ребро многоугольника задано точками P1(x1,y1,z1) и P2(x2,y2,z2), а очередная вершина окна задает-ся точкой P3(x3,y3,z3). Векторное произведение вектора P1P3 на вектор P1P2, равное (x3-x1)(y2-y1) - (y3-y1)(x2-x1) будет меньше 0, равно 0 или больше 0, если вершина лежит слева, на или справа от прямой P1P2. Если знаки различны, то окно и многоугольник пересекаются. Если же все знаки одинаковы, то окно лежит по одну сторону от ребра, т.е. многоугольник мо-жет быть либо внешним, либо охватывающим.

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

Page 105: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

105

обходе вершин многоугольника. Если суммарный угол равен 0, то многоугольник - внешний. Если же

угол равен N×360°, то многоугольник охватывает окно N раз. Простейшая иллюстрация этого теста приведена на рис. 6.3.

Рисунок 6.3 Тест на охватывающий/внешний многоугольник.

6.3. ПОСТРОЧНЫЙ АЛГОРИТМ УОТКИНСА В алгоритмах построчного сканирования результирующее изображение

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

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

Последовательность шагов алгоритма: 1. построение списка ребер, 2. построение списка многоугольников, 3. построение списка активных ребер - создается таблица ребер, вклю-

чающая все негоризонтальные ребра многоугольников, причем элементы таблицы по значению Y-координаты отсортированы по группам.

Page 106: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

106

6.4. АЛГОРИТМ ТРАССИРОВКИ ЛУЧЕЙ При рассмотрении этого алгоритма предполагается, что наблюдатель

находится на положительной полуоси Z, а экран дисплея перпендикулярен оси Z и располагается между объектом и наблюдателем.

Удаление невидимых (скрытых) поверхностей в алгоритме трассиров-ки лучей выполняется следующим образом:

1. сцена преобразуется в пространство изображения, 2. из точки наблюдения в каждый пиксел экрана проводится луч и оп-

ределяется какие именно объекты сцены пересекаются с лучом, 3. вычисляются и упорядочиваются по Z координаты точек пересече-

ния объектов с лучом. В простейшем случае для непрозрачных поверхностей без отражений и преломлений видимой точкой будет точка с максимальным значением Z-координаты. Для более сложных случаев требуется сортировка точек пересечения вдоль луча.

Ясно, что наиболее важная часть алгоритма - процедура определения пересечения, которая в принципе выполняется Rx×Ry×N раз (здесь Rx,Ry - разрешение дисплея по X и Y, соответственно, а N - количество многоуголь-ников в сцене).

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

При использовании прямоугольной оболочки определяется преобразо-вание, совмещающее луч с осью Z. Оболочка подвергается этому преобразо-ванию, а затем попарно сравниваются знаки Xmin с Xmax и Ymin с Ymax. Если они различны, то есть пересечение луча с оболочкой рис. 6.4.

Page 107: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

107

Рисунок 6.4. Определение пересечения луча и оболочки.

При использовании сферической оболочки для определения пересече-ния луча со сферой достаточно сосчитать расстояние от луча до центра сфе-ры. Если оно больше радиуса, то пересечения нет. Параметрическое уравне-ние луча, проходящего через две точки P1(x1,y1,z1) и P2(x2,y2,z2), имеет вид:

P(t) = P1 + (P2 - P1)×t

Минимальное расстояние от точки центра сферы P0(x0,y0,z0) до луча

равно:

d2 = (x-x0)2 + (y-y0)2 + (z-z0)2 Этому соответствует значение t: t = -(x2-x1)(x1-x0) + (y2-y1)(y1-y0) + (z2-z1)/((z1-z0)(x2-x1)2 + +(y2-y1)2 + (z2-z1)2. Если d2 > R2, то луч не пересекает объекты, заключенные в оболочку. Дальнейшее сокращение расчетов пересечений основывается на ис-

пользовании групп пространственно связанных объектов. Каждая такая группа окружается общей оболочкой. Получается иерархическая последова-тельность оболочек, вложенная в общую оболочку для всей сцены. Если луч

Page 108: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

108

не пересекает какую-либо оболочку, то из рассмотрения исключаются все оболочки, вложенные в нее и, следовательно, объекты. Если же луч пересе-кает некоторую оболочку, то рекурсивно анализируются все оболочки вло-женные в нее.

Наряду с вложенными оболочками для сокращения расчетов пересече-ний используется отложенное вычисление пересечений с объектами. Если обнаруживается, что объект пересекается лучом, то он заносится в специаль-ный список пересеченных. После завершения обработки всех объектов сцены объекты, попавшие в список пересеченных упорядочиваются по глубине. За-ведомо невидимые отбрасываются а для оставшихся выполняется расчет пе-ресечений и отображается точка пересечения наиболее близкая к наблюдате-лю. Дополнительное сокращение объема вычислений может достигаться от-брасыванием нелицевых граней, учетов связности строк растрового разложе-ния и т.д.

7 ПРОЕКЦИИ При визуализации двумерных изображений достаточно задать окно ви-

димости в системе координат пользователя и порт отображения на экране дисплея, в котором будет выдаваться изображение из окна.

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

Рисунок 7.1. Модель процесса визуализации трехмерных изображений

Как уже отмечалось, проецирование в общем случае - отображение то-

чек, заданных в системе координат размерностью N, в точки в системе с

Page 109: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

109

меньшей размерностью. При отображении трехмерных изображений на дис-плей три измерения отображаются в два.

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

По расположению центра проекции относительно плоскости проекции различаются центральная и параллельные проекции.

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

При ортогональной проекции проекторы перпендикулярны плоскости проекции, а плоскость проекции перпендикулярна главной оси. Т.е. проекто-ры параллельны главной оси.

При аксонометрической проекции имеется одна из двух перпендику-лярностей:

при прямоугольной аксонометрической проекции проекторы перпен-дикулярны плоскости проекции, которая расположена под углом к главной оси;

при косоугольной аксонометрической проекции проекторы не перпен-дикулярны плоскости проекции, но плоскость проекции перпендикулярна к главной оси.

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

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

Page 110: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

110

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

7.1.1. Параллельные проекции Вначале мы рассмотрим ортогональные проекции, используемые в

техническом черчении, в регламентированной для него правосторонней сис-теме координат, когда ось Z изображается вертикальной. Затем будут проил-люстрированы аксонометрические проекции также в правосторонней систе-ме координат, но уже более близкой к машинной графике (ось Y вертикаль-на, ось X направлена горизонтально вправо, а ось Z - от экрана к наблюдате-лю). Наконец выведем матрицы преобразования в левосторонней системе ко-ординат, часто используемой в машинной графике, с вертикальной осью Y, осью X, направленной вправо и осью Z, направленной от наблюдателя.

Использование проекций в техническом черчении регламентируется стандартом ГОСТ 2.317-69. Наиболее широко, особенно, в САПР использу-ются ортогональные проекции (виды). Вид - ортогональная проекция обра-щенной к наблюдателю видимой части поверхности предмета, расположен-ного между наблюдателем и плоскостью чертежа.

В техническом черчении за основные плоскости проекций принимают шесть граней куба (рис. 7.2).

Вид спереди, главный вид, фронтальная проекция, (на заднюю грань V), Вид сверху, план, горизонтальная проекция, (на нижнюю грань H), Вид слева, профильная проекция, (на правую грань W), Вид справа (на левую грань), Вид снизу (на верхнюю грань), Вид сзади (на переднюю грань).

Page 111: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

111

Рисунок 7.2. Ортогональные проекции (основные виды) и их расположение на листе чер-

тежа. Очевидно, что при ортогональной проекции не происходит изменения

ни углов, ни масштабов. При аксонометрическом проецировании рис. 7.3 сохраняется парал-

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

При изометрических проекциях укорачивания вдоль всех координат-ных осей одинаковы, поэтому можно производить измерения вдоль направ-лений осей с одним и тем же масштабом (отсюда и название изометрия). На рис. приведена (аксонометрическая прямоугольная) изометрическая проек-ция куба со стороной A. При этой проекции плоскость проецирования накло-нена ко всем главным координатным осям под одинаковым углом. Стандар-том регламентируется коэффициент сжатия, равный 0.82, а также располо-жение и взаимные углы главных координатных осей, равные 120° как это по-казано в левом верхнем углу рис. . Обычно сжатие не делается.

Рисунок 7.3. Аксонометрическая прямоугольная изометрическая проекция куба со сторо-

ной A.

Page 112: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

112

При диметрической проекции две из трех осей сокращены одинаково, т.е. из трех углов между нормалью к плоскости проекции и главными коор-динатными осями два угла одинаковы. На рис. 7.4. приведена (аксонометри-ческая прямоугольная) диметрическая проекция куба со стороной A. Там же показаны регламентируемые расположение осей и коэффициенты сжатия. Обычно вместо коэффициента сжатия 0.94 используется 1, а вместо 0.47 - 0.5.

Рис. 7.4. Аксонометрическая прямоугольная диметрическая проекция куба со стороной A.

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

Наиболее употребимы два вида косоугольной проекции - фронтальная (косоугольная) диметрия (проекция Kabinett - кабине) и горизонтальная (ко-соугольная) изометрия (проекция Kavalier - кавалье) или военная перспекти-ва.

В случае фронтальной (косоугольной) диметрии при использовании правосторонней системы координат экрана плоскость проецирования пер-пендикулярна оси Z. Ось X направлена горизонтально вправо. Ось Z изобра-жается по углом в 45° относительно горизонтального направления. Допуска-ется угол наклона в 30 и 60°. При этом отрезки, перпендикулярные плоскости проекции, при проецирования сокращаются до 1/2 их истинной длины. На рис. 7.5 приведена (аксонометрическая косоугольная) фронтальная диметри-ческая проекция куба со стороной A, там же показаны регламентируемые ко-эффициент сжатия, равный 0.5 и расположение осей.

Page 113: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

113

Рисунок 7.5. Аксонометрическая косоугольная фронтальная диметрическая проекция куба

со стороной A. В случае же (аксонометрической косоугольной) горизонтальной изо-

метрии, как следует из названия, плоскость проецирования перпендикулярна оси Y а укорачивания по всем осям одинаковы и равны 1. Угол поворота изо-бражения оси X относительно горизонтального направления составляет 30°. Допускается 45 и 60° при сохранении угла 90° между изображениями осей X и Z. Иллюстрация этого приведена на рис. 7.6.

Рисунок 7.6. Аксонометрическая косоугольная горизонтальная изометрическая проекция

куба со стороной A. Выведем выражения для матриц преобразования, используя теперь ле-

востороннюю систему координат более естественную для машинной графи-ки.

Простейшее параллельное проецирование - ортогональное выполняет-ся на плоскость, перпендикулярную какой-либо оси, т.е. при направлении

Page 114: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

114

проецирования вдоль этой оси. В частности, проецирование в XY-плоскость, заданную соотношением Z = Z0, выполняется следующим образом:

[ ] [ ]

=

100

0000

0010

0001

1''''

0Z

zyxwzyx .

Рассмотрим теперь косоугольное проецирование, при котором плос-

кость проецирования перпендикулярна главной оси, а проекторы составляют с плоскостью проецирования угол не равный 90°. Матрица для этого преоб-разования может быть найдена исходя из значений угла проецирования и ко-ординат преобразованной точки. На рис. 7.7. показана косоугольная парал-лельная проекция единичного куба.

Рисунок 7.7. Косоугольная параллельная проекция P1(L·cosa, L·sina, 0) точки P0(0,0,1)

Из рисунка видно, что проектором, идущим из точки P0 в P1, точка P0(0,0,1) проецируется в P1(L·cosa, L·sina, 0).

Теперь проектором, параллельным рассмотренному рис. 7.8, спроеци-руем некоторую точку (X,Y,Z) в точку (Xp,Yp,Zp).

Page 115: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

115

Рисунок 7.8. Косоугольная параллельная проекция (Xp,Yp,0) точки (X,Y,Z) Из подобия треугольников получаем:

(Xp-X)/Z = L·cosa Ю Xp = X + Z·L·cosa (Yp-Y)/Z = L·sina Ю Yp = Y + Z·L·sina

Это соответствует следующему матричному выражению:

[ ] [ ]

=

1000

01sincos

0000

0011

11aLaL

zyxzpypxp

Таким образом, матрица аксонометрической косоугольной проекции для случая проецирования в плоскость Z = 0, выполняет следующее:

1. вначале плоскости с заданной координатой Z0 переносятся вдоль оси X на Z0·L·cosa и вдоль оси Y на Z0·L·sina,

2. затем производится проецирование в плоскость Z = 0. 7.1.2. Центральная проекция Наиболее реалистично трехмерные объекты выглядят в центральной

Page 116: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

116

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

Рисунок 7.9. Одно-, двух- и трехточечная центральные проекции куба.

Наиболее широко используется двухточечная центральная проекция. Выведем матрицу, определяющую центральное проецирование для

простого случая одноточечной проекции рис. 7.10, когда плоскость проекции перпендикулярна оси Z и расположена на расстоянии d от начала координат. (Здесь используется удобная для машинной графики левосторонняя система координат).

Page 117: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

117

Рисунок 7.10. Центральная проекция точки P0 в плоскость Z = d.

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

Из рис. 7.10 видно, что для координат (X1,Y1) точки P1, полученной проецированием точки P0(X,Y,Z) в плоскость Z = d (плоскость экрана) вы-полняются следующие соотношения:

ZX

dX

=1 , ZY

dY

=1

Отсюда:

dZYY

dZXX == 11 ,

Такое преобразование может быть представлено матрицей 4×4:

[ ] [ ] .

0000

0100

0010

0001

11111

=

d

zyxwzyx

Если же точка просмотра расположена в плоскости проекции, тогда

Page 118: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

118

центр проекции расположен в точке (0,0,-d). Рассматривая подобные тре-угольники, аналогично вышеописанному, получим:

.1

,1 21 +

=+

=dZYY

dZXX

Матрица преобразования в этом случае имеет вид:

=

1000

0100

0010

0001

d0M .

ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА

1. Ньюмен У., Спрулл Р. Основы интерактивной машинной графики.

Пер. с англ. М.: Мир, 1976. 2. Роджерс Д. Алгоритмические основы машинной графики. Пер. с

англ. М.: Мир, 1989. 3. Роджерс Д., Адамс Дж. Математические основы машинной графики:

пер. с англ. – М.: Машиностроение, 1980 4. Аммерал Л. Машинная графика на языке С: в 4-х книгах. – Сол Сис-

тем, 1992 5. Томпсон Н. Секреты программирования трехмерной графики для

Windows 95: пер. с англ. – СПб.: Питер, 1997 6. Тихомиров Ю. OpenGL. Программирование трехмерной графики – 2-

е изд. - СПб.: «БХВ – Санкт-Петербург», 2002 7. Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики: В

2-х книгах. Пер. с англ. М.: Мир, 1985. 8. Антонофф Майкл, Линдерхолм Оуэн. Лазерные принтеры// Компью-

тер Пресс, сборник N 1, 1989, с. 3-8. 9. Печатающие устройства персональных ЭВМ: Справочник// Под ре-

дакцией проф. И.М.Витенберга. М.: Радио и связь, 1992. 10. Лисицин Б.Л. Низковольтные индикаторы: Справочник. М.: Радио и

Page 119: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

119

связь, 1985. 11. Справочник по машинной графике в проектировании/

В.Е.Михайленко, В.А.Анпилогова, Л.А.Кириевский и др.: Под ред. В.Е.Михайленко. А.А.Лященко. Киев: Будiвельник, 1984. 184 с.

12. Мячев А.А, Степанов В.Н. Персональные ЭВМ и микроЭВМ. Ос-новы организации: Справочник/ Под ред. А.А.Мячева. М.: Радио и связь, 1991.

13. Новаковский С.В. Цвет в цветном телевидении. М.: Радио и связь, 1988. 288 с.

14. Павлидис Т. Алгоритмы машинной графики и обработки изображе-ний. Пер. с англ. М.: Радио и связь, 1986.

15. Ткаченко А.П. Цветное телевидение. Минск: Беларусь, 1981. 253 с. 16. Fontenier Guy and Gros Pascal. Architectures of Graphic Processors for

Interactive 2D Graphics// Computer Graphics Forum 7 (1988) 78-89. 17. Баяковский Ю.М., Галактионов В.А. Графические протоколы// Ав-

тометрия. 1978. 5. C. 3-11. 18. Баяковский Ю.М., Галактионов В.А., Михайлова Т.Н. Графор. Гра-

фическое расширение Фортрана. М.: Наука, 1985. 19. Бобков В.А., Белов С.Б. Универсальная графическая система// Про-

блемы вычислительной техники. М.: МЦНТИ, 1981. C. 145-155. 20. Бобков В.А., Белов С.Б., Говор В.И. Интерактивная графическая

система общего назначения// Материалы Второго Всесоюз. совещ. "Диалого-вые вычислительные комплексы". Серпухов, 1979. С. 279-284.

21. Бучнев А.А., Вельтмандер П.В. Аппаратно-независимые графпаке-ты// Тез. докл. Всесоюз. конф. "Диалог человек-ЭВМ". Ленинград, 1982. Ч. 2. С. 189-192.

22. Бучнев А.А., Вельтмандер П.В., Кудряков В.Ф. Базовое программ-ное обеспечение обработки изображений// Тез. докл. Всесоюз. конф. "Диалог человек-ЭВМ". Ленинград: ЛИАП, 1982. Ч. 2. С. 118.

23. Венда В.Ф., Чачко С.А. Психологические факторы сложности диа-лога "человек-ЭВМ" в автоматизированных системах// Материалы семинара "Диалог в автоматизированных системах". М.: Общество "Знание" РСФСР, Московский Дом научно-технической пропаганды. 1981. С. 111-118.

24. Вельтмандер П.В. Аппаратно-ориентированные графпакеты// Про-блемы машинной графики /Под ред. А.М.Мацокина. Новосибирск: ВЦ СО

Page 120: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

120

АН СССР, 1982. С. 32-38. 25. Вельтмандер П.В. Интерактивная машинная графика в пакетах при-

кладных программ// Материалы Третьей всесоюз. конф. "Диалог человек-ЭВМ". Протвино, 5-7 июля 1983. Серпухов: ИФВЭ. 1984. С. 23-38.

26. Вельтмандер П.В. Распределенная система интерактивной машин-ной графики локальной вычислительной сети// Материалы пятой школы-семинара "Интерактивные системы". Тбилиси: Мецниереба, 1983. С. 158-160.

27. Вельтмандер П.В., Кривошеев В.А., Прошкин А.А., Сизых В.Г. По-строение стереоизображений// Тез. докл. Всесоюз. конф. "Диалог человек-ЭВМ". Ленинград: ЛИАП, 1982. Ч. 2. С. 187-189.

28. Вуль В.А. Оперативные графические диалоговые системы и их применение// Зарубежная радиоэлектроника. 1980. 1. С. 57-85.

29. Гилой В. Интерактивная машинная графика: структуры данных, ал-горитмы, языки/ Пер. с англ. М.: Мир, 1981. 384 с.

30. Зозулевич Д.М. Машинная графика в автоматизированном проек-тировании. М.: Машиностроение, 1976. 240 с.

31. Климов В.Е., Мороз С.В. Повышение производительности техниче-ских средств машинной графики // Электронная вычислительная техника. Сборник статей. М.: Радио и связь. 1989.

32. Липкин И. Еще раз о RISC// Компьютер пресс. Обозрение зарубеж-ной прессы. 1991. 6, с. 43-47.

33. Панфилов А.В. Графические аппаратные средства персональных компьютеров семейства IBM PC // Микропроцессорные средства и системы. 1990. 3.

34. Пилюгин В.В., Аджиев В.Д., Поляков М.Д. Решение на ЭВМ задач геометрического и графического моделирования// Материалы семинара "Ав-томатизация проектирования". М.: Общество "Знание" РСФСР, Московский Дом научно-технической пропаганды. 1981. С. 74-77.

35. Роуз В. Разработка интерфейсов человек-машина для интерактив-ных систем работающих в реальном времени// ТИИЭР. 1975. Т. 63, 6. С. 17-30.

36. Фоли Д.У. Искусство организации естественного графического диалога человек-машина// ТИИЭР. 1974. 4. С. 54-67.

37. ACM SIGGRAPH Computer Graphics, v. 21, 6, November 1987. 38. Bergernn R.D. Picture Primitive in device Independent Graphics System

Page 121: КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКАfiles.lib.sfu-kras.ru/ebibl/umkd/152/u_course.pdf · Пересечения прямых и ... Алгоритм удаления

121

// Computers and Graphics. 1976. V. 10, 1. P. 57-60. 39. PostScript language description/ Adobe System Inc. Addison-Wesley

Publishing Company, Inc., Reading, Massachusets, 1985. 40. PostScript language reference manual/ Adobe System Inc. Addison-

Wesley Publishing Company, Inc., Reading, Massachusets, 1985. 41. PostScript language tutorial and cookbook/ Adobe System Inc. Addison-

Wesley Publishing Company, Inc., Reading, Massachusets, 1985.