В некоторых руководствах вместо термина
|
|
|
|
|
|
|
Код
|
Цвет
|
Turbo С
|
Turbo Pascal
|
|
|
12
|
Светло-красный
|
LIGHTRED
|
LightRed
|
|
|
13
|
Светло-малиновый
|
LIGHTMAGENTA
|
LightMagenta
|
|
|
14
|
Желтый
|
YELL0W
|
Yellow
|
|
|
15
|
Белый
|
WHITE
|
White
|
|
|
|
|
|
|
|
В некоторых руководствах вместо термина "малиновый" используют "фиолетовый", хотя в общепринятом смысле эти цветовые оттенки воспринимаются как разные. Вообще говоря, на разных видеосистемах приведенная палитра может иметь некоторые отклонения. Полным аналогом программы 8_04.bas является следующая программа на Си:
Программа 8_04.с
/* Демонстрация цветовой палитры */
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
main () {
int X,y,col=0;
int gd=0,gm;
initgraph(&gd,&gm, "");
for(y=10; y<=310; y+=100)
for(x=10; x<=460; x+=150) {
setfillstyle(1,col); /* Сплошная заливка цветом col */
bar3d(x-l,y-l,x+101,y+76,0,l);
col++;
sleep(l); /* Задержка на 1 сек*/ }
getch () ; closegraph(); }
Кроме управления двумя основными цветами переднего и заднего планов, имеется возможность изменить содержимое одного или всех регистров палитры. В системе QBasic для этой цели используются операторы PALETTE и PALETTE USING:
PALETTE reg,col PALETTE USING A%
Параметр reg задает номер модифицируемого регистра палитры, а значение col из диапазона [0,63] определяет новое содержимое указанного регистра. В случае групповой модификации всех регистров палитры их новые значения определяются байтами массива А%. Если в каком-то из этих байтов находится — 1 (0xFF), то значение соответствующего регистра палитры не изменяется.
Функции setpaiette и setallpaiette в пакете BGI ничем не отличаются от описанных выше операторов:
SetPalette(reg,col);
SetAllPalette(A);
Содержание Назад Вперед