
- •Аппаратные средства мг: устройство pастpового гpафического дисплея
- •Аппаратные средства машинной графики: устройство стpуйного пpинтеpа.
- •Аппаратные средства машинной графики: устройство лазерного пpинтеpа.
- •Аппаратные средства машинной графики: графопостроители.
- •Аппаратные средства машинной графики: манипуляторы типа “мышь”.
- •Двумерные геометрические (аффинные) преобразования
- •Композиция и коммутативность геометрических преобразований. Однородные координаты.
- •Видовой конвейер 2d. Преобразование координат
- •Плоские геометрические проекции. Ортографические проекции.
- •Плоские геометрические проекции. Косоугольные проекции.
- •Компоненты Delphi для представления графической информации
- •Создание реалистических изображений: алгоритм плавающего горизонта.
- •Создание реалистических изображений: алгоритм Вейлера-Азертона для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: алгоритм использующий z-буфер для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: алгоритм Ньюэла- Ньюэла-Санча для удаления невидимых линий и поверхностей.
- •Создание реалистических изображений: удаление невидимых линий методом трассировки лучей.
- •Цвет в машинной графике. Модели rgb cmyk
- •Цвет в машинной графике. Модель художника, модель hsv
- •Простая модель освещения
- •OpenGl Основные матрицы и работа с ними
- •Свойства материала в OpenGl Грани
- •Реализация проекций в OpenGl
- •Определение нормалей и закрашивание методом Гуро
- •Определение нормалей и закрашивание методом Фонга
- •Позиционные источники света в OpenGl
- •Направленные источники света в OpenGl
- •Модель освещения в OpenGl
- •Текстуры
- •Текстуры. Mip отображение
- •Разложение отрезка в растр по методу простого дифференциального анализатора.
- •Метод Брезенхема для разложение отрезка в растр
- •Заполнения многоугольников: простой алгоритм заполнения с затравкой.
- •Заполнения многоугольников: построчный алгоритм заполнения с затравкой.
- •Основные понятие и определения компьютерной графики
- •Алгоритмы удаления невидимых линий
- •Алгоритм плавающего горизонта
- •Алгоритм Ньюэла-Ньюэла-Санча
- •Алгоритм Вейлера-Азертона
- •Алгоритм трассировки лучей
-
Плоские геометрические проекции. Косоугольные проекции.
Косоугольные (наклонные) проекции сочетают в себе свойства ортографических проекций (видов спереди, сверху и сбоку) со свойствами аксонометрии. В этом случае проекционная плоскость перпендикулярна главной координатной оси, поэтому сторона объекта, параллельная этой плоскости, проецируется так, что можно измерить углы и расстояния. Проецирование других сторон объекта также допускает проведение линейных измерений (но не угловых) вдоль главных осей. Отметим, что нормаль к проекционной плоскости и направление проецирования не совпадают.
Двумя важными видами косоугольных проекций являются проекции:
· Кавалье (cavalier) – горизонтальная косоугольная изометрия (военная перспектива);
· Кабине (cabinet) – фронтальная косоугольная диметрия
В проекции Кавалье (рис. 3.11.) направление проецирования составляет с плоскостью угол 45°. В результате проекция отрезка, перпендикулярного проекционной плоскости, имеет ту же длину, что и сам отрезок, т. е. укорачивание отсутствует.
Проекция Кабине (рис.
3.12.) имеет направление проецирования,
которое составляет с проекционной
плоскостью угол =
arctg(½) (≈26,5°). При этом отрезки,
перпендикулярные проекционной плоскости,
после проецирования составляют ½ их
действительной длины. Проекции Кабине
являются более реалистическими, чем
проекции Кавалье, так как укорачивание
с коэффициентом ½ больше согласуется
с нашим визуальным опытом.
-
Компоненты Delphi для представления графической информации
Image (изображение) |
Additional |
Используется для отображения графики: пиктограмм, битовых матриц и метафайлов. |
PaintBox (окно для рисования) |
System |
Используется для создания на форме некоторой области, в которой можно рисовать. |
DrawGrid (таблица рисунков) |
Additional |
Используется для отображения в строках и столбцах нетекстовых данных. |
Chart (диаграммы и графики) |
Additional |
Компонент принадлежит к семейству компонентов TChart, которые используются для создания диаграмм и графиков. |
Канва представляет собой область компонента, на которой можно рисовать или отображать готовые изображения. Она содержит свойства и методы, существенно упрощающие графику Delphi Канва имеет свойство Pixels. Это свойство представляет собой двумерный массив, который отвечает за цвета канвы. Brush Pen Style/
-
Создание реалистических изображений: алгоритм плавающего горизонта.
Главная идея данного метода заключается в сведении трехмерной задачи к двумерной путем пересечения исходной поверхности последовательностью параллельных секущих плоскостей, имеющих постоянные значения координат х, у или z. F(x, у, z) = 0.
F(x,y,z)=0,
Поскольку в приложениях в основном интересуются описанием поверхности, этот алгоритм работает в пространстве изображения. Главная идея данного метода заключается в сведении трехмерной задачи к двумерной путем пересечения исходной поверхности последовательностью параллельных секущих плоскостей, имеющих постоянное значение координат x, y, или z (рис.18).
Если полученные кривые спроецировать на плоскость z=0, то можно сформулировать идею алгоритма удаления невидимых участков исходной поверхности. Алгоритм сначала упорядочивает плоскости z=const по возрастанию расстояния до них от точки наблюдения. Затем в каждой плоскости, начиная с ближней к точке наблюдения, строится кривая, лежащая на ней, т.е. для каждого значения координаты x в пространстве изображения определяется соответствующее значение y.
Алгоритм удаления невидимых линий заключается в следующем:
если для текущей плоскости при некотором заданном значении x соответствующее значение y на кривой больше значения y на всех предыдущих кривых при этом значении x, то текущая кривая видима в этой точке; в противном случае она невидима.
Реализация данного алгоритма достаточно проста. Для хранения максимальных значений y при каждом значении x используется массив, длина которого равна числу различимых точек (разрешению) по оси x в пространстве изображения. Значения, хранящиеся в этом массиве, представляют собой текущие значения "горизонта". Поэтому по мере рисования каждой очередной кривой этот горизонт «всплывает». Фактически этот алгоритм работает каждый раз с одной линией.
Алгоритм работает хорошо до тех пор, пока какая-нибудь очередная кривая не окажется ниже самых первых кривых (z6 на рис.18). Подобные кривые, естественно, видимы и представляют собой нижнюю сторону исходной поверхности, однако алгоритм будет считать их невидимыми. Нижняя сторона поверхности делается видимой, если модифицировать этот алгоритм, включив в него нижний горизонт, который опускается вниз по ходу работы алгоритма. Это реализуется при помощи второго массива, длина которого равна числу различимых точек по оси x в пространстве изображения. Этот массив содержит наименьшее значение y для каждого значения x.
Алгоритм становится таким: если на текущей плоскости при некотором заданном значении x соответствующее значение y на кривой больше максимального или меньше минимального по y для всех предыдущих кривых при этом x, то текущая кривая видима; в противном случае она невидима.
Алгоритм плавающего горизонта чаше всего используется для удаления невидимых линий трехмерного представления функций, описывающих поверхность в виде F(x, у, z) = 0.
Идея метода заключается в сведении трехмерной задачи к двумерной путем пересечения исходной поверхности последовательностью параллельных секущих плоскостей, имеющих постоянные значения координаты z.
Алгоритм сначала упорядочивает плоскости z = const по возрастанию расстояния до них от точки наблюдения. Затем для каждой плоскости, начиная с ближайшей к точке наблюдения, строится кривая, лежащая на ней, т.е. для каждого значения координаты х в пространстве изображения определяется соответствующее значение y.
Если на текущей плоскости при некотором заданном значении x соответствующее значение у на кривой больше значения y для всех предыдущих кривых при этом значении x, то текущая кривая видима в этой точке; в противном случае она невидима.