logo search
FINAL (Verdana, 16)

36. Объясните основы машинной графики.

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

1. Понятие растр - это множество M, такое, что существует взаимно однозначное (биективное) отображение , где , . Если множества X и Y - конечные, то растр будем называть прямоугольным, в противном случае будем называть его бесконечным.

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

Кадровый буфер — реальное или виртуальное электронное устройство, или область памяти для кратковременного хранения одного или нескольких кадров в цифровом виде перед его отправкой на устройство видеовывода.

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

Алгоритмы нижнего уровня: реализация графических примитивов. К простым примитивам относятся следующие объекты: Точка, Отрезок, Круг, Дуга, Прямая, Луч, Эллипс, Сплайн, Текст. Наиболее распространенный алгор. для построения примитивов - Алгоритм Брезенхема. Основная идея алгоритма состоит в том, что если угловой коэффициент прямой < 1/2, то естественно точку, следующую за точкой (0,0), поставить в позицию (1,0), а если угловой коэффициент > 1/2, то - в позицию (1,1).

К сложным примитивам относятся: полилиния, мультилиния, мультитекст, размер, выноска, допуск, штриховка, вхождение блока или внешней ссылки, атрибут и растровое изображение.

Алгоритмы верхнего уровня: удаление невидимых линий и поверхностей. Отсекаемые отрезки могут быть трех классов - целиком видимые, целиком невидимые и пересекающие окно. Осн. алг. - Двумерный алгоритм Коэна-Сазерленда. Схема алгоритма следующая:

1. Рассчитать коды конечных точек отсекаемого отрезка.

В цикле повторять пункты 2-6:

2. Если логическое И кодов конечных точек не равно 0, то отрезок целиком вне окна. Он отбрасывается и отсечение закончено.

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

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

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

6. Определение нового кода начальной точки.