Смекни!
smekni.com

Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x (стр. 20 из 24)

*

4Ответ неверный. Процедура MoveRel смещает курсор относительно его 002

текущей позиции.

*

*

1081Ответ неверный. Рисунок будет иметь следующий вид: 002

*

2 2Ответ неверный.Рисунок будет иметь следующий вид: 002

*

3Ответ правильный. 005

*

3 4Ответ неверный. рисунок будет иметь следующий вид: 002

*

*

091Ответ неверный. 002

*

2Ответ неверный. 002

*

3Ответ правильный. 005

*

4Ответ неверный. 002

*

*

101Ответ правильный. 005

*

2Ответ неверный. 002

*

3Ответ неверный. 002

*

4Ответ неверный. 002

*

*

0

УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЙ

В данном разделе мы рассмотрим возможности управления цветовой

палитрой и стилем рисования.

* procedure GetPalette(var PaletteType);

Возвращает текущую плитру и количество цветов в ней. Применя-

ется только в графическом режиме и только с драйверами EGA, EGA 64

и VGA.

* procedure SetAllPalette(var Palette);

Меняет все цвета палитры на заданные. Переменная без типа

Palette в первом байте содержит число N- количество цветов в палитре

а в последующих N байах - коды задаваемых цветов. Если задана вели-

чина -1, то исходный цвет остается без изменений.

* procedure SetPalette(NumberColor:word;Color:byte);

Изменяет один из цветов палитры. NumberColor - порядковый

номер изменяемого цвета. Color -код нового цвета.

* procedure SetColor(Color:word);

Устанавливает текущий цвет рисования.Color - код цвета либо

его имя. Возможные значения параметра приведены на следующем экране

УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЯ

_____________________________________________________________________

Имя Значение Назначение

--------------------------------------------------------------------

Black 0 черный

Blue 1 синий

Green 2 зеленый

Cyan 3 голубой

Red 4 красный

Magenta 5 фиолетовый

Brown 6 коричневый

LightGray 7 светло-серый

DarkGray 8 темно-серый

LightBlue 9 светло-синий

LightGreen 10 светло-зеленый

LightCyan 11 светло-голубой

LightRed 12 розовый

LightMagenta 13 светло-фиолетовый

Yellow 14 желтый

1White 15 белый

УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЯ

* procedure SetBKColor(Color:word);

Устанавливает цвет фона рисования. Color - код или имя цвета.

Для получения справок о кодах цветов, связанных с курсором и

фоном рисования, используются функции:

function GetColor:word;

function GetBKColor:word;

Факторами, определяющими стиль рисования, являются толщина и

способ выражения линий, используемых в изображениях контурных линий

и линий закраски замкнутых фрагментов рисунков.

* procedure SetLineStyle(LineStyle:word; Pattern:word;

* Thiekness:word);

Устанавливает стиль контурных линий и их толщину. Параметр

LineStyle может принимать следующие значения:

SolidLn = 0 ___________________________________________________

DottedLn = 1 ...................................................

CenterLn = 2 ._._._._._._._._._._._._._._._._._._._._._._._._._ .

DashedLn = 3 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

UserBitLn = 4 тип, определяемый пользователем.

Когда LineStyle=userBitLn, задается параметр Pattern - шаблон

линии - двухбайтовое число, каждый бит которого равен 1, если оче-

редной пиксель следует высветить, и 0 в противном случае.

Параметр Thickness устанавливает толщину линий и может при-

нимать следующие значения: NormWidth = 1 - тонкая линия

ThickWidth= 3 - толстая линия

УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЯ

* procedure GetLineSettings(var LineInfo:LineSettingsType);

Возвращает параметры текущего стиля контурных линий. Тип

LineSettingsType описан в модуле Graph как запись, поля которой:

LineStyle:word;

Pattern:word;

Thickness:word;, имеют тот же смысл, что и одноименные параметры

процедуры SetLineStyle.

* procedure SetFillStyle[(Pattern:word;Color:word)];

Устанавливает стандартные орнамент и цвет заполнения. "По умол-

чанию" закраска белая сплошная. Параметр Color - установка цвета.

Возможные значения параметра Pattern проиллюстрированы на следующем

экране.

* procedure SetFillPattern(Pattern:FillPatternType;Color:word);

Задает произвольный орнамент и цвет заполнения фигур.

Pattern - задаваемый пользователем орнамент.

typeFillPatternType=array[1..8] of byte;

Color - код цвета в палитре.

* procedure GetFillSettings(varFillInfo:FillSettingsType)

Возвращает код и цвет стандартного образца закраски в пере-

менных Color и Pattern соответственно.

УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЯ

--------------------------------------------------------------------

Имя Значение

--------------------------------------------------------------------

EmptyFill 0 Фоновым цветом

SolidFill 1 Заданным цветом

LineFill 2

LtSlashFill 3

SlashFill 4

BkSlashFill 5

LtBkSlashFill 6

HatchFill 7

XHatchFill 8

InterLeaveFill 9

WideDotFill 10

CloseDotFill 11

2 UserFill 12 Заполнение определяется пользователем

0--------------------------------------------------------------------

01С ПОМОЩЬЮ КАКОЙ ПРОЦЕДУРЫ МОЖНО ВЫВЕСТИ НА ЭКРАН СПИСОК КОДОВ

ЦВЕТОВ НЕИЗВЕСТНОЙ ВАМ ТЕКУЩЕЙ ЦВЕТОВОЙ ПАЛИТРЫ?

1 GetPalette(Palette);

1 2 SetPalette(NumberColor,Color);

3 SetAllPalette(Palette);

4 SetLineStyle(LineStyle,Pattern,Thickness);

*

02УСТАНОВИТЕ НА ЧЕРНОМ ЭКРАНЕ КВАДРАТНОЕ ОКНО И ЗАКРАСЬТЕ ЕГО

СПЛОШНЫМ БИРЮЗОВЫМ ЦВЕТОМ(3).

1 SetFillStyle(0,3);

Bar(X1,Y1,X1+d,Y1+d);

2 SetBKColor(0);

SetColor(3);

Bar(X1,Y1,X1+d,Y1+d);

3 SetBKColor(0);

SetFillStyle(0,3);

Bar(X1,Y1,X1+d,Y1+d);

4 SetFillStyle(0,3);

SetBKColor(0);

Bar(X1,Y1,X1+d,Y1+d);

*

03С ПОМОЩЬЮ КАКОГО ФРАГМЕНТА ВОЗМОЖНО ЗАКРАСИТЬ ПРЯМОУГОЛЬНУЮ

ОБЛАСТЬ КРАСНОГО(4) ЭКРАНА ЧАСТОЙ СЕТКОЙ(9) СИНЕГО ЦВЕТА(1)?

1 SetBKColor(4);

SetFillStyle(9,1,0);

Bar(X1,Y1,X2,Y2);

2 SetBKColor(4);

Rectangle(X1,Y1,X2,Y2);

SetFillStyle(9,1,0);

3 SetBKColor(4);

SetFillStyle(9,1);

Bar(X1,Y1,X2,Y2);

4 SetBKColor(4);

Bar(X1,Y1,X2,Y2);

SetFillStyle(9,1);

*

04ИМЕЕТСЯ ЛИ В ЯЗЫКЕ TURBO PASCAL ВОЗМОЖНОСТЬ УСТАНАВЛИВАТЬ

ПРОИЗВОЛЬНЫЙ (ПО ЖЕЛАНИЮ ПОЛЬЗОВАТЕЛЯ) ЦВЕТ РИСОВАНИЯ, СТИЛЬ И

ТОЛЩИНУ ЛИНИЙ РИСОВАНИЯ?

1 Нет

2 Только цвет

3 Только стиль линий

4 Только стиль и толщину линий

*

05НАПИШИТЕ ПРОГРАММУ РИСОВАНИЯ КОНТУРОВ ПРЯМОУГОЛЬНИКА ЛИНИЯМИ,

СОСТОЯЩИМИ ИЗ ЧЕРЕДУЮЩИХСЯ ПАР ТОЧЕК И ТИРЕ.

1 GetLineStyle(0,0,1);

Rectangle(X1,Y1X2,Y2);

2 SetLineStyle(4,$3,1);

Rectangle(X1,Y1,X2,Y2);

3 SetLineStyle(4,3,1);

Rectangle(X1,Y1,X2,Y2);

4 SetLineStyle(0,13,1);

Rectangle(X1,Y1,X2,Y2);

*

06КАК ОБЕСПЕЧИТЬ ЗАКРАСКУ КАКОЙ-ЛИБО ОБЛАСТИ ЭКРАНА КРАСНЫМ(4)

ЦВЕТОМ 25% ЯРКОСТИ?

1 SetFillPatern(1,2,4,8,1,2,4,8);

2 SetFillPatern(1,2,4,8,1,2,4,8;4);

3 SetFillPatern(11,22,44,88,11,22,44,88);

4 SetFillPatern(11,22,44,88,11,22,44,88;4);

*

07КАКАЯ ИЗ НИЖЕУКАЗАННЫХ ПРОЦЕДУР УСТАНАВЛИВАЕТ СТАНДАРТНЫЕ

ОБРАЗЦЫ ЗАКРАСКИ И ИХ ЦВЕТА?

1 SetFillStyle(Pattern:word;Color:word);

2 SetFillPatern(Pattern:FillPatternType;Color:Word);

3 GetFillSettings(var FillInfo:FillSettingsType);

4 SetLineStyle(LineStyle:Word;Pattern:Word;Thickness:Word);

*

08С ПОМОЩЬЮ КАКОЙ ПРОЦЕДУРЫ МОЖНО ЗАМЕНИТЬ НУЛЕВОЙ,ЧЕРНЫЙ, ЦВЕТ

ПАЛИТРЫ НА ДЕВЯТЫЙ, СВЕТЛО-ГОЛУБОЙ?

1 SetAllPalette;

2 SetColor;

3 SetPalette;

4 GetPalette;

*

09НАПИШИТЕ ПРОГРАММУ ЗАМЕНЫ ЦВЕТА НЕИЗВЕСТНОГО СТАНДАРТНОГО СТИЛЯ

ЗАКРАСКИ НА ЦВЕТ X.

1 Color:=X;

SetFillStyle(Pattern,Color);

2 GetFillSettings;

Color:=X;

SetFillStyle(Pattern;Color);

3 GetFillSettings;

Color:=X;

SetFillPattern(Pattern;Color);

4 GetFillSettings;

Color:=X;

SetFillStyle(Color;Pattern);

*

10НАПИШИТЕ ПРОГРАММУ РИСОВАНИЯ НА КРАСНОМ(4) ЭКРАНЕ ГОЛУБОГО(9)

ОКНА, ЗАКРАШЕННОГО КЛЕТКОЙ СИНЕГО ЦВЕТА(1).

1 SetBKColor(4);

SetFillStyle(7,1);

Bar(X1,Y1,X2,Y2);

2 SetBKColor(4);

Bar(X1,Y1,X2,Y2);

SetFillStyle(7,1);

Bar(X1,Y1,X2,Y2);

3 SetBKColor(4);

SetFillStyle(1,9);

Bar(X1,Y1,X2,Y2);

SetFillStyle(7,1);

Bar(X1,Y1,X2,Y2);

4 SetFillStyle(9,1);

Bar(X1,Y1,X2,Y2);

SetFillStyle(7,1);

SetBKColor(4);

*

0

011Ответ правильный. 005

*

2Ответ неверный. Процедура SetPalette изменяет один из цветов палитры002

*

3Ответ неверный. Процедура SetAllPalette изменяет цвета палитры. 002

*

4Ответ неверный. Процедура SetLineStyle устанавливает стиль 002

контурных линик и их толщину.

*

*

021Ответ правильный. 005

*

2Ответ неверный. Процедура SetColor задает цвет рисования. но не 002

закрашивает фигуры.

*

3Ответ неверный. Нет необходимости устанавливать черный цвет, т.к. 003

он автоматически устанавливается при вхождении в графический режим.

*

4Ответ неверный.На черном экране, установленном процедурой SetBKColor002

будет виден лишь белый контур квадрата.

*

*

031Ответ неверный.Ошибка в написании параметров процедуры SetFillStyle.002

*

2Ответ неверный. Результатом выполенния данного фрагмента будет 002

красный экран.Ошибка в написании параметров процедуры SetFillStyle.

*

3Ответ правильный. 005

*

4Ответ неверный. Стиль и цвет закраски необходимо установить до 002

построения фигуры.

*

*

041Ответ неверный. В языке имеется возможность устанавливать 002

произвольный (по желанию пользователя) стиль контурных линий с

помощью процедуры SetLineStyle(LineStyle,Pattern,Thickness).

При этом параметр LineStyle устанавливается в значение UserBitLn(4)

а параметр Pattern представляет собой битовую строку, определяющую

стиль изображения кнтурных линий. Возможности установить призволь-

ный цвет рисования нет.

*

2Ответ неверный. В языке имеется возможность устанавливать 002

произвольный (по желанию пользователя) стиль контурных линий с

помощью процедуры SetLineStyle(LineStyle,Pattern,Thickness).

При этом параметр LineStyle устанавливается в значение UserBitLn(4)

а параметр Pattern представляет собой битовую строку, определяющую

стиль изображения кнтурных линий. Возможности установить призволь-

ный цвет рисования нет.

*

3Ответ правильный. 005

*

4Ответ неверный. В языке имеется возможность устанавливать 002

произвольный (по желанию пользователя) стиль контурных линий с

помощью процедуры SetLineStyle(LineStyle,Pattern,Thickness).

При этом параметр LineStyle устанавливается в значение UserBitLn(4)

а параметр Pattern представляет собой битовую строку, определяющую

стиль изображения кнтурных линий. Возможности установить призволь-

ный цвет рисования нет.

*

*

051Ответ неверный. Процедура GetLineStyle не устанавливает стиль 002

контурных линий, а возвращает их текущие параметры.

*

2Ответ правильный.

* 005

3Ответ неверный. Параметр Pattern не может состоять из одной цифры, 002

т.к. его значение - двухбайтовое число.

*

4Ответ неверный. При установке стандартного стиля контурных линий 002

параметр Pattern не задается.

*

*

061Ответ неверный. Не указан параметр Color и элементы массива Pattern 002

являются двухбайтовыми.

*

2Ответ неверный. Элементы массива Pattern являются двухбайтовыми. 002