ВУЗ:
Составители:
Рубрика:
105
Таблица 9. Соответствие параметров BitBlt логическим операциям
Имя константы Значение Операция
CopyPyt 0 MOV
XORPut 1 XOR
OrPut 2 OR
AndPut 3 AND
NotPut 4 NOT
Настройка палитры
После инициализации графического режима краски в палитре распре-
делены в соответствии с нижеприведённой таблицей.
Таблица 10. Компоненты цвета.
Номер компо-
ненты палитры
Константа
цвета
Номер
краски
Цвет краски
0 Black 0 Чёрный
1 Blue 1 Синий
2 Green 2 Зелёный
3 Cyan 3 Бирюзовый
4 Red 4 Красный
5 Magenta 5 Фиолетовый
6 Brown 6 Коричневый
7 LightGray 7 Светло-серый
8 DarkGray 8 Тёмно-серый
9 LightBlue 9 Голубой
10 LightGreen 10 Светло-зелёный
11 LightCyan 11 Светло-бирюзовый
12 LightRed 12 Розовый
13 LightMagenta 13 Светло-фиолетовый
14 Yellow 14 Жёлтый
15 White 15 Белый
В графическом режиме предусмотрена возможность изменения рас-
пределения красок по компонентам. Для этого применяется процедура:
106
SetPalette(ColorNum:Word;Color:Shortlnt) - устанавливает цвет с номе-
ром Color в компоненте палитры с номером ColorNum. Если с помощью
указанной процедуры в компоненту №1 поместить краску №2 оператором
SetPalette (1, Green);
в палитре будут 2 компоненты с краской зеленого цвета, а краски синего
цвета не будет вообще. Впрочем, нетрудно вернуть синюю краску опера-
тором в компоненту с номером i.
SetPalette (i, Blue);
Применяя
настройку палитры, можно сделать незаметным сам процесс
стирания старого и построения нового изображения движущегося предмета.
Пример:
Изобразите перемещение круга слева на право.
var i:integer; {Вставка описания процедуры инициализации}
{$1 D:/pas/init.pas}
begin
Init; {Вызов процедуры инициализации графического
режима}
SetBkColor(blue); {Установка синего цвета фона}
SetPalette(14,Blue); {Установка в компоненте №14 синей краски, той же,
что и для фона}
for i: =l to GetMaxX-100 do {Изображение
движущегося круга}
begin
SetColor(14) ; {Установка цвета круга из компоненты №14}
SetFillStyle(l,14); {Вывод синего круга на синем фоне экрана, круг не
виден}
FillEllipse(i+14,getMaxY div 2,50,50); {Установка желтого цвета в
компоненте №14, сразу проявляется
желтый круг целиком}
SetPalette(14,Yellow);
Delay(400); {Задержка}
SetPalette(14,Blue); {Установка синего цвета в компоненте №14, синий
круг на синем фоне сразу становится невидимым}
SetColor(1); {Установка цвета круга
из компоненты №1}
SetFillStyle(1, 1); {Стирание нарисованного круга закрашиванием си-
ним цветом на синем фоне}
FillEllipse(i+14, getMaxY div 2,50,50);
end;
CloseGraph;
end.
Таблица 9. Соответствие параметров BitBlt логическим операциям SetPalette(ColorNum:Word;Color:Shortlnt) - устанавливает цвет с номе- Имя константы Значение Операция ром Color в компоненте палитры с номером ColorNum. Если с помощью CopyPyt 0 MOV указанной процедуры в компоненту №1 поместить краску №2 оператором XORPut 1 XOR SetPalette (1, Green); OrPut 2 OR в палитре будут 2 компоненты с краской зеленого цвета, а краски синего AndPut 3 AND цвета не будет вообще. Впрочем, нетрудно вернуть синюю краску опера- NotPut 4 NOT тором в компоненту с номером i. SetPalette (i, Blue); Применяя настройку палитры, можно сделать незаметным сам процесс Настройка палитры стирания старого и построения нового изображения движущегося предмета. Пример: После инициализации графического режима краски в палитре распре- Изобразите перемещение круга слева на право. делены в соответствии с нижеприведённой таблицей. var i:integer; {Вставка описания процедуры инициализации} Таблица 10. Компоненты цвета. {$1 D:/pas/init.pas} begin Номер компо- Константа Номер Цвет краски Init; {Вызов процедуры инициализации графического ненты палитры цвета краски режима} 0 Black 0 Чёрный SetBkColor(blue); {Установка синего цвета фона} 1 Blue 1 Синий SetPalette(14,Blue); {Установка в компоненте №14 синей краски, той же, что и для фона} 2 Green 2 Зелёный for i: =l to GetMaxX-100 do {Изображение движущегося круга} 3 Cyan 3 Бирюзовый begin 4 Red 4 Красный SetColor(14) ; {Установка цвета круга из компоненты №14} 5 Magenta 5 Фиолетовый SetFillStyle(l,14); {Вывод синего круга на синем фоне экрана, круг не виден} 6 Brown 6 Коричневый FillEllipse(i+14,getMaxY div 2,50,50); {Установка желтого цвета в 7 LightGray 7 Светло-серый компоненте №14, сразу проявляется 8 DarkGray 8 Тёмно-серый желтый круг целиком} 9 LightBlue 9 Голубой SetPalette(14,Yellow); Delay(400); {Задержка} 10 LightGreen 10 Светло-зелёный SetPalette(14,Blue); {Установка синего цвета в компоненте №14, синий 11 LightCyan 11 Светло-бирюзовый круг на синем фоне сразу становится невидимым} 12 LightRed 12 Розовый SetColor(1); {Установка цвета круга из компоненты №1} 13 LightMagenta 13 Светло-фиолетовый SetFillStyle(1, 1); {Стирание нарисованного круга закрашиванием си- ним цветом на синем фоне} 14 Yellow 14 Жёлтый FillEllipse(i+14, getMaxY div 2,50,50); 15 White 15 Белый end; CloseGraph; В графическом режиме предусмотрена возможность изменения рас- end. пределения красок по компонентам. Для этого применяется процедура: 105 106
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »