Среди многообразия возможностей, предоставляемых современными вычислительными средствами, компьютерная графика, ориентированная на пространственно-образное мышление человека, занимает особое место. Ее методы и средства компьютерной графики представляют собой эффективный инструмент при выполнении проектно-конструкторских, научно-исследовательских, оформительских работ, а также всех случаев визуализации различных объектов. При этом наблюдается взаимное повышение возможностей, как человека, владеющего эффективным инструментом, так и компьютера, обогащенного новыми возможностями. В этом смысле значительную роль играет разработка соответствующих алгоритмов, отличающихся качественными параметрами по быстродействию, объемам используемой памяти и спектру предоставляемых возможностей.
Основой компьютерной графики являются методы и алгоритмы растровой графики, которые позволяют строить любые изображения на растровых дисплеях, использующих прямоугольную матрицу точек (пикселей). Каждый пиксель может изображаться некоторым цветом, выбранным из имеющейся палитры цветов. Для реализации любого изображения в компьютере имеется видеоадаптер, хранящий в своей видеопамяти изображение и обеспечивающий регенерацию изображения на экране со скоростью порядка 50 раз в секунду. Размер палитры определяется объемом видеопамяти, отводимой под один пиксель, и зависит от типа видеоадаптера. Для ПЭВМ типа IBM существуют несколько видеоадаптеров, отличающихся возможностями, своим устройством и принципами работы с ними: Hercules, CGA, EGA, VGA, SVGA. Почти все указанные адаптеры поддерживают несколько режимов работы, которые отличаются друг от друга размерами матрицы пикселей (разрешающей способностью изображений) и размером палитры. Как правило, развитие видеоадаптеров строится по принципу совместимости с предыдущими моделями, однако при этом могут иметь место некоторые особенности, нарушающие это положение.
Формирование изображения базируется на работе с отдельными пикселями, однако пользователю может предоставляться достаточно широкий набор библиотечных примитивов, которые повышают эффективность работы за счет операций с графическими объектами. Такими объектами могут выступать линии, дуги, окружности, сложные кривые, сплошные объекты, шрифты, картинки и т.д. Как правило, каждый язык программирования имеет свою графическую библиотеку, обеспечивающую работу с элементами и группами графических объектов, которая должна при этом поддерживать работу с основными типами видеоадаптеров.
Особенности растровой графики связаны с тем, что обычные изображения, с которыми сталкивается человек в своей деятельности (чертежи, графики, карты, художественные картины и т.п.), реализованы на плоскости, состоящей из бесконечного набора точек. Экран же растрового дисплея представляется матрицей дискретных элементов, имеющих конкретные физические размеры. При этом число их существенно ограничено. Поэтому нельзя провести точную линию из одной точки в другую, а можно выполнить только аппроксимацию этой линии с отображением ее на дискретной матрице.
Для большей определенности следует ввести понятие дискретной плоскости, имеющей целочисленные координаты. Такую плоскость также называют целочисленной решеткой, растровой плоскостью или растром. Эта решетка представляется квадратной сеткой с шагом 1. Узлы целочисленной решетки являются центрами соответствующих квадратных ячеек сетки. Таким образом, узлы растра окружены "единичными" квадратными окрестностями "радиуса" 1/2. При обращении к точке растра с координатами (i,j) выполняется инициализация единичного квадрата с закрашиванием его соответствующим цветом.
Отображение любого объекта на целочисленную решетку называется разложением его в растр или просто растровым представлением. Естественно, это разложение лишь приблизительно представляет изображаемый объект. Отображение является неоднозначным ввиду зависимости его от алгоритмов аппроксимации, а они, в свою очередь, - от критериев определения точек растра. В связи с этим возникает задача выбора оптимального алгоритма по соответствующему критерию.
|