BitBLT копирует пикселы источника 5 в прямоугольник адресата D с помощью метода логической комбинации, описанного ранее: D = D ® 5. На месте символа ® могут стоять различные операции.

Некоторые версии BitBLT позволяют пользователю предварительно «смешивать» («premix») изображение в прямоугольнике источника с какой-либо заранее выбранной пиксельной картой, которая называется полутоновым шаблоном (halftone pattern), после чего это смешанное изображение становится источником 5 и копируется в адресат. Полутоновый шаблон хранится в пиксельной карте некоторого размера, например 16 на 16 пикселов. Это может быть, к примеру, шахматный шаблон из нулей и единиц, имитирующих оттенки серого цвета. Если эта маска меньше, чем изображение источника, то она повторяется (в виде мозаики) до тех пор, пока не достигнет размеров источника. Пользователю предоставляется на выбор четыре варианта для пиксельной карты источника S: О логическое умножение (AND) источника и полутонового шаблона; О только источник (полутоновый шаблон игнорируется); О только полутоновый шаблон; О сплошной черный цвет.

Большинство BitBLT-процессоров поддерживают также отсечение прямоугольника (clipping rectangle). Прежде чем нарисовать каждый пиксел адресата, его координаты сравниваются с границами отсекающего прямоугольника, и пиксел рисуется только в том случае, если он лежит внутри этих границ. Это может быть проделано аппаратно, внутри процессора, и с большой скоростью. Отсекающий прямоугольник эффективно ограничивает ту область адресата, в которой может производиться рисование.

10.4. Рисование прямых своими силами: алгоритм Брезенхема В большинстве графических сред уже содержатся встроенные средства для рисования прямых линий. Каждая среда имеет как минимум один из вариантов процедур 1 ine() или 1 ineto(). Разумеется, OpenGL идет значительно дальше. В других случаях нас не волновали подробности работы такого инструмента - каким образом он решает, какие пикселы задействовать между двумя концевыми точками прямой. Однако рисование прямой является фундаментальным для компьютерной графики, поэтому будет полезно подробно рассмотреть, как работает такая подпрограмма. И на деле программистам иногда приходится писать самим подпрограмму рисования прямых - в тех случаях, когда они разрабатывают или оптимизируют новые коммерческие графические пакеты.


⇐ Предыдущая| |Следующая ⇒