Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

GetMem(P, Size);

 

Сохраняем двоичный образ прямоугольной области в ОЗУ (буфере) процедурой:

GetImage(X1, Y1, X2, Y2, P^);

 

Сохраненный массив пикселов можно выводить на экран из буфера процедурой:

PutImage(X, Y, P^, N);

 

Здесь X, Y - позиция вывода верхнего левого угла прямоугольной области,

P^ - обозначает содержимое буфера с начальным адресом "Р",

N - режим вывода:

N = 0 (CopyPut) - замена изображения на экране изображением из буфера.

Остальные режимы соответствуют логическим операциям с битами, определяющими цвет пикселов на экране и соответствующих значений цвета пикселов, выводящихся из буфера:

N = 1 (XorPut) - "исключающее ИЛИ" (результат равен 1, если значения битов различны),

N = 2 (OrPut) - "ИЛИ" (результат равен 1, если один из битов равен 1),

N = 3 (AndPut) - " И " (результат равен 1, если оба бита равны 1),

N = 4 (NotPut) - " НЕ" (замена изображения на экране инверсным изображением из буфера).

Цвет пикселов изображения из буфера не изменяется, если рисунок выводится в область, залитую фоном. Цвет пикселов изображения из буфера изменяется в соответствии с логическими операциям над битами, определяющими цвет пикселов, если рисунок выводится в область заполненных каким либо цветом фигур. Например, при выводе красного круга на синий прямоугольник результирующий цвет пикселов будет:


Режим вывода Значения битов, соответствующие цвету пиксела

красный цвет синий цвет результирующий цвет


XorPut 00000100 00000001 00000101 = $5 фиолетовый

OrPut 00000100 00000001 00000101 = $5 фиолетовый

AndPut 00000100 00000001 00000000 = $0 черный

NotPut 00000100 $15-$4 = $11 ярко-голубой

 

Вывод в режиме XorPut удобно использовать при создании движущихся изображений, поскольку при первом выводе получаем изображение из буфера, а при втором - восстанавливаем изображение на экране. Для создания движущегося изображения в буфер помещают, как правило несколько различных образов, например, рисунок человечка с различным положением рук и ног. На экран выводится первое изображение в режиме XorPut, затем следует задержка выполнения программы, снова выводится первое изображение в режиме XorPut в том же месте (происходит восстановление изображения на экране), далее (возможно в другой позиции) выводится второе изображение в режиме XorPut и т. д.

 

 

Освобождение (очистка) участков памяти размером "Size", начиная с адреса, заданного параметром "Р", производится процедурой:


Дата добавления: 2015-10-29; просмотров: 97 | Нарушение авторских прав


Читайте в этой же книге: TextBackGround(5); ClrScr; | Практическое задание N 1. 36 | Практическое задание N 1. 43 | Практическое задание N 1. 45 | Простейшие графические процедуры и функции | PutPixel(xc, yc, i); Circle(xc, yc, 3) Until KeyPressed; | Построение заполненных фигур | Практическое задание N 1. 55 | SetColor(S); Circle(xf, yf, R) end; | Практическое задание N 1. 57 |
<== предыдущая страница | следующая страница ==>
Создание узоров построением зеркальных отображений фигуры.| Модификация контурного изображения

mybiblioteka.su - 2015-2024 год. (0.006 сек.)