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



         

Управление цветом - часть 2


/p>

Код

Цвет

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




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