Практика программирования (Бейсик, Си, Паскаль)


         

В некоторых руководствах вместо термина








































































































Код



Цвет



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);




Содержание  Назад  Вперед