- •Пугачев а.И.
- •1.1. Растровые изображения
- •1.2. Графические устройства ввода-вывода
- •1.3. Видеоадаптеры
- •2.1. Двумерные примитивы
- •2.2. Визуализация на дискретной области вывода
- •2.3. Визуализация отрезков прямых
- •2.5. Кривые Безье
- •2.7. Алгоритм закрашивания ориентированных многоугольников
- •2.8. Теоретико-множественные операции над двумерными областями
- •2.9. Построчный алгоритм тмо
- •2.10. Программная организация данных для представления сложных объектов
- •3.1. Двумерные геометрические преобразования
- •3.2. Совмещение преобразований. Преобразование относительно заданного центра
- •3.4. Непрерывные геометрические преобразования
- •3.5. Линейные преобразования фрагментов изображения
- •4.1. Трехмерные примитивы
- •4.2. Аппроксимация криволинейных поверхностей
- •4.3. Многогранники и сложные объекты
- •4.4. Свет и цвет
- •4.5. Диффузная модель распространения света
- •4.6. Зеркальное отражение света
- •4.7. Трехмерные геометрические преобразования
- •4.8. Проецирование трехмерных объектов
- •4.9. Ориентация и потенциальная видимость поверхностей
- •4.10. Удаление невидимых точек поверхностей
- •4.11. Метод визуального сглаживания Гуро
- •4.12. Метод визуального сглаживания Фонга
- •4.13. Системы координат в пространственной сцене
- •4.14. Алгоритмы трехмерной визуализации
- •4.15. Построение изображения с тенями
- •Основы компьютерной графики
2.2. Визуализация на дискретной области вывода
Визуализация – это процесс формирования изображения и его вывод с помощью графического устройства вывода. Чаще всего изображение выводится на монитор, поэтому в дальнейшем будем подразумевать именно это устройство. Рассмотрим специфику визуализации в отношении точности воспроизведения геометрии изображаемых объектов.
Формально область вывода монитора или другого графического устройства растрового типа представляет собой прямоугольную часть дискретной плоскости, для адресации пикселей в которой используется целочисленная система координат. На рис. 2.3 показана ограниченная область вывода с системой координат, используемой в мониторах. Диапазоны изменения координат по осям OX и OY составляют соответственно [0..Xemax] и [0..Yemax]. Например, для монитора с разрешающей способностью 1280 х 1024 этими диапазонами будут [0..1279] и [0..1023].
Рис. 2.3
Для определенности будем считать, что всякая пара координат (x, y) в области вывода задает центр соответствующего пикселя.
Дискретный характер области вывода предопределяет, что изображение точно заданных геометрических объектов всегда будет построено с погрешностью. На рис. 2.4 в качестве примера приведено представление на дискретной области отрезка прямой.
Рис. 2.4
Первая причина погрешности заключается в том, что на дискретной плоскости точно можно представить лишь центры точек с целыми координатами. Для изображения точек с вещественными координатами их приходится округлять до целых значений. Погрешностью δ в изображении всякой точно заданной точки (x, y) следует считать расстояние между этой точкой и центром пикселя, изображающего данную точку. На рис. 2.4 центры пикселей отмечены точками, однако, говоря о максимальной погрешности визуализации из-за округления, чаще вместо этого способа ее оценки для простоты рассматривают максимальную погрешность от округления координат пикселей. В этом случае максимальная погрешность визуализации будет 0,5 пикселя, что не сильно отличается от точной оценки.
Вторая причина погрешности состоит в том, что пиксели в отличие от математических точек имеют реальные размеры, что приводит к искажению заданных размеров объектов. В частности, как видно на рис. 2.4, длина всякого отрезка прямой при визуализации возрастает примерно на 1 пиксель. Кроме этого у отрезка появляется толщина примерно в 1 пиксель.
При визуализации приходится учитывать и другие особенности. В частности, алгоритмы визуализации линейных объектов (отрезков линий) должны изображать их без разрывов. На дискретной плоскости непрерывность между точками в изображении линий и отрезков основана на понятии связности соседних пикселей. Рассматриваются 2 вида связности – 4– и 8-связность (рис. 2.5) [4].
Для 4-связности соседними с данным пикселем (x, y) считаются 4 ближайших, у которых одна из координат (xn, yn) отличается на 1 от координат этого пикселя (см. рис. 2.5, а), т.е. такие, для которых |x – xn| + |y – yn| = 1. Для 8-связности соседними считаются пиксели, у которых одна или обе координаты отличаются от (x, y) на 1 (см. рис. 2.5, б), т.е. такие, для которых |x – xn| + |y – yn| [1, 2].
Рис. 2.5
На рис. 2.5 показано растровое изображение одинаковых по размерам и ориентации отрезков с использованием 4-связного и 8-связного соседства. В алгоритмах визуализации обычно используется 8-связность, поскольку в этом случае изображение непрерывных линий выглядит более гладким.