Практикум по среде и языку QBasic 137

SCREEN 9 'выбор графического режима CLS 'очистка экрана LINE (0,0)-(639,220), 9, BF

"построение голубого прямоугольника LINE (0,175)-(639,349),2, BF

'построение зеленого прямоугольника SLEEP 5 'задержка на 5 секунд

Процедура LINE с признаком BF рисует прямоугольник с вертикальными и горизонтальными сторонами, притом его диагональ задается координатами пары точек, записанными в скобках. Атрибут цвета записывается после координат.

Запустив эту программу, вы увидите, что верхняя половина экрана ярко-синяя, а нижняя — темно-зеленая. Нарисовать радугу можно построением концентрических окружностей с закрашиванием ограничиваемых ими кругов. Однако в последовательности семи цветов радуги К-0-Ж-З-Г-С-Ф второй не входит в стандартный 16-цветный набор. И остальные цвета также не лучшим образом подходят для раскрашивания изображения радуги.

Между тем видеоадаптер EGA позволяет получить 64 цвета. Для присвоения любого из этих цветов заданным атрибутам цвета служит процедура PALETTE (палитра), первым параметром которой является код атрибута (от 0 до 15), а вторым — код цвета (от 0 до 63). В код цвета могут входить следующие слагаемые: красная составляющая с весом 1 как 32, а с весом 2 — как 4; зеленая составляющая как 16 и 2, а синяя — как 8 и 1 соответственно. Таким образом каждая составляющая может иметь 4 уровня (0, 1, 2 и 3). Если использовать одинаковые интенсивности всех трех составляющих, то получается 4 "серых" кода цвета — это черный (0),темно-серый (56), серый (7) и белый (63). Они соответствуют так называемой нулевой цветности и отличаются друг от друга только яркостью. Для каждого из чистых цветов имеется по 6 кодов, 3 из них насыщенные и отличаются только яркостью, а еще 3 ненасыщенные, то есть являются смесью чистого цвета с серыми различной яркости. При комбинировании каждой пары чистых цветов с добавлением серого различных яркостей также получается по 6 кодов (для желтого, голубого и пурпурного). В 6 интервалах между чистыми и комбинированными цветами находится по 4 кода.

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

DEFINT I 'определение целого типе SCREEN 9 'выбор графического режима CLS 'очистка экрана PALETTE 1, 36 'выбор кода красного цвета для радуги PALETTE 2, 38 'выбор кода оранжевого цвета для радуги PALETTE 3, 54 'выбор кода желтого цвета для радуги PALETTE 4, 18 'выбор кода зеленого цвета для радуги PALETTE 5, 11 'выбор кода голубого цвета для радуги PALETTE 6, 25 'выбор кода синего цвета для радуги