Смекни!
smekni.com

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

*

3Ответ неверный. Не указан параметр Color. 002

*

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

*

*

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

*

2Ответ неправильный. Процедура SetFillPattern позволяет программисту 003

определить свой, нестандартный, образец закраски. Возможно смодели-

ровать и стандартный стиль с помощью той же процедуры.

*

3Ответ неверный. Эта процедура возвращает код и цвет стандартного 002

образца закраски.

*

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

линий.

*

*

081Ответ неверный. Данный способ замены одного цвета другим допустим, 004

но не рационален.

*

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

рисования.

*

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

*

4Ответ неверный. Процедура GetPalette выдает справку о текущей 002

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

*

*

091Ответ неверный. Параметр Color не следует устанавливать предвари- 002

тельно для процедуры SetFillStyle. Процедура SetFillStyle устанав-

ливает стандартный образец закраски и цвет.

*

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

*

3Ответ неверный. Процедура SetFillPattern устанавливает нестандартный002

стиль закраски.

*

4Ответ неверный. Параметры процедуры SetFillStyle следует употреблять003

в обратном порядке.

*

*

101Ответ неверный.Фон прямоугольлника (X1,Y1,X2,Y2) будет красным. 002

*

2Ответ неверный. Прямоугольник (X1,Y1,X2,Y2) будет по умолчанию 002

закрашен белым цветом, а не голубым.

*

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

*

4Ответ неверный. Процедура SetBKColor закрасит экран красным цветом, 002

закрасив прямоугольник.

*

*

0

ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ ИЗОБРАЖЕНИЙ

В данном разделе рассматриваются процедуры, позволяющие програм-

мировать изображение криволинейных фигур из класса круговых и эллип-

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

изображений и часто используемые вспомогательные процедуры.

* procedure Arc(X,Y:integer;StAngle,EndAngle,Radius:word);

1

Рисует против часовой стрелки текущим

стилем и цветом дугу окружности с центром (X,Y),

радиусом Radius от начального угла StAngle до

конечного угла AndAngle. Угловые параметры

задаются в градусах.

* procedure CetArcCords(var ArcCoords:ArcCoordsType);

Возвращает в переменной ArcCoords координаты концов дуги,

проведенной последней командой Arc.Тип ArcCoordsType описан в

модуле Graph как запись, значения полей которой аналогичны значению

параметров процедуры Arc.

* procedure Circle(X,Y:integer;Radius:word);

2

Строит контуры окружности радиуса Radius с

центром (X,Y), заданным ранее цветом и стилем

рисования.

ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ ИЗОБРАЖЕНИЙ

* procedure Ellipse (X,Y:integer;

* StAngle,EndAngle,XRadius,YRadius:word);

3

Строит текущим стилем и цветом дугу

эллписа с центром (X,Y), начальным StAngle

и конечным EndAngle углами, двумя полуосями

XRadius и YRadius.

* procedure FloodFill(X,Y,Border:word);

Обеспечивает закраску ограниченной

области, в которую входит точка (X,Y) , по

образцу, установленному предварительно

процедурой SetFillStyle либо SetFillPattern.

Параметр Border определяет код цвета,

ограничивающего закрашиваемую область.

* procedure FillEllipse(X,Y:integer;XRadius, YRadius:word);

Закрашивает область эллипса,используя

предварительно установленные стиль и цвет закраски.

Значения параметров аналогичны значениям параметров

процедуры Ellipse.

4

5

ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ ИЗОБРАЖЕНИЙ

* prosedure PieSlice(X,Y:integer;

* StAngle,EndAngle,Radius:word);

6

Строит и закрашивает круговой сектор

установленным стилем и цветом. Параметры имеют

тот же смысл и тип, что и одноименные параметры

процедуры Arc.

* procedure Sector(X,Y:integer;

* StAngle,EndAngle,XRadius,YRadius:word);

7

Рисует и закрашивает эллиптический сектор,

используя текущие стиль и цвет рисования и зак-

раски. Параметры имеют тот же смысл и тип что

и одноименные параметры процедуры Ellipse.

* procedure Randomize;

Инициализирует встроенный генератор случайных чисел сллучайным

значением, получаемым от системного таймера компьютера. Описана в

модуле System . Число, получаемое в результате работы генератора,

хранится в предописанной переменной RandSeed. Присваивая ей конкрет-

ные значения можно получать каждый раз заданную последовательность

случайных чисел.

ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ ИЗОБРАЖЕНИЙ

* function Random(Rande:word):word;

Возвращает случайное число. Переменная Rande должна быть выра-

жением целого типа, а результатом будет случайное число X длиной в

слово в диапазоне 0=<X<Rande. Если Rande=<0, Random возвращает 0.

Если параметр функции не задан вовсе, то результатом будет

вещественное число в диапазоне 0=<X<1.

* procedure Delay(Time:word);

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

модуде Crt.

* function KeyPressed:boolean;

Возвращает значение true, если на клавиатуре нажата

какая-либо символьная клавиша, и false - в противном случае. Описана

в модуле Crt.

* procedure PutPixel(X,Y:integer;Color:word);

Рисует на экране в позиции (X,Y) точку цвета Color. Опивана в

модуле Graph.

* procedure GetPixel(X,Y:integer):word;

Возвращает код цвета заданной точки растра (X,Y).

ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ ИЗОБРАЖЕНИЙ

В качестве примера использования функции PutPixel продемон-

стрируем возможность формирования "звездного неба" до нажатия любой

символьной клавиши.

.............

Randomize;

repeat

PutPixel(Random(GetMaxX),

Random(GetMaxY),

Red);

Delay(50);

until KeyPressed;

.............

Приведем еще один пример использования процедур и функций,

описанных в данном разделе.На следующем экране Вы можете наблюдать

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

цвета закраски, а также кардиоиду, представленную семейством окруж-

ностей, проходящих через общею точку опорной окружности и с центрами

в концах равных элементов, составляющих опорную окружность. Цвета

элементов опорной окружности и окружностей кардиоиды назнача-

ются случайным образом.

8

9 ПРОГРАММИРОВАНИЕ ЦВEТНЫХ КРИВОЛИНЕЙНЫХ ИЗОБРАЖЕНИЙ

0

01НАРИСУЙТЕ ПРОГРАММУ РИСОВАНИЯ НА ЖЕЛТОМ(14) ЭКРАНЕ КРИВОЛИНЕЙНОЙ ЦИФРЫ 8 СИНЕГО(1) ЦВЕТА.

1 SetBKColor(14);

SetColor(1);

Circle(X,Y;Radius);

Circle(X,Y+d;Radius+d);

2 SetBKColor(1);

SetColor(14);

Circle(X,Y;Radius);

Circle(X,Y;Radius+d);

3 SetBKColor(14);

SetColor(1);

Arc(X,Y;0,360,Radius);

Arc(X,Y+d;0,360,Radius);

4 SetBKColor(1);

SetColor(14);

Arc(X,Y;0,360,Radius);

Arc(X,Y+d;0,360,Radius);

*

02НАПИШИТЕ ПРОГРАММУ ФОРМИРОВАНИЯ НА ЧЕРНОМ ЭКРАНЕ КРАСНОЙ ЦИФРЫ 5 С КРИВОЛИНЕЙНОЙ НИЖНЕЙ И ПРЯМОЛИНЕЙНОЙ ВЕРХНЕЙ ЧАСТЯМИ.

1 SetColor(4);

GoToXY(X,Y);

Arc(X+d,Y+d,0,180,K+d);

Arc(X,Y+d,0,90,d);

Arc(X+d,Y+d+k,0,180,k);

2 SetColor(4);

Line(X,Y,X+d,Y);

Line(X,Y,X,Y+d);

Arc(X+k,Y+k,0,90,k);

Arc(X+k,Y+k,270,360,k);

3 SetColor(4);

Line(X,Y,X+d,Y);

Line(X,Y,X,Y+d);

Arc(X+k,Y+k,0,180,k);

4 SetColor(4);

Line(X,Y,X-d,Y);

Line(X-d,Y,X-d,Y+d);

Circle(X-d,Y+d+k,k);

*

03НАПИШИТЕ ПРОГРАММУ , ОБЕСПЕЧИВАЮЩУЮ ФОРМИРОВАНИЕ НА ЧЕРНОМ ЭКРАНЕ ЭЛЛИПСА СО СЛУЧАЙНЫМ ЦВЕТОМ ЗАКРАСКИ.

1 Randomize;

SetFillStyle(0,15);

Ellipse(X,Y,0,359,a,b);

FloodFill(X,Y,Random(14);

2 SetFillStyle(0,15);

Ellipse(X,Y,0,359);

FloodFill(X,Y,Random(14);

3 SetFillStyle(0,15);

Randomize(15);

Ellipse(X,Y,0,359,a,b);

FloodFill(X,Y,Random);

4 SetFillStyle(0,15);

Randomize;

Ellipse(X,Y,a,b);

FloodFill(X,Y);

*

04КАК ПРАВИЛЬНО ЗАДАТЬ УГЛОВЫЕ ПАРАМЕТРЫ ПРОЦЕДУРЫ Arc?

1 В радианах. Их значения не должны превышать 2пи.

2 В радианах. Их значения не должны превышать пи.

3 В градусах. Их значения не должны превышать 360 градусов.

4 В градусах. Их значения не должны превышать 180 градусов.

*

05В КАКОМ МОДУЛЕ ОПИСАНА ПРОЦЕДУРА RANDOMIZE?

1 Graph.

2 Crt .

3 Dos.

4 System.

*

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

ОПРЕДЕЛЕННОГО ЦВЕТА?

1 PutPixel.

2 KeyPressed.

3 GetPixel.

4 Delay.

*

0

ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ

В данном разделе мы рассмотрим возможность графического изобра-

жения текстовых символов, управление типом шрифта, направлением

вывода, размерами и пропорциями символов, пространственной привязкой

текстовых строк к положению курсора и другими возможностями формиро-

вания графических текстов.

* procedure SetTextStyle(Font,Direction:word;

* CharSize:CharSizeType);

Устанавливает стиль стандартного шрифта Font(один растровый -

DefaultFont(0), и четыре штриховых - TriplexFont(1),SmallFont(2),

SanSerifFont(3), GothicFont(4)), направление текстовой строки

Direction (HorizDir(0) - слева направо, VertDir(1) - снизу вверх),

размер символов CharSize (коэффициент увеличения от 1 до 10).

В случае растрового шрифта каждый текстовый символ формируется

на основе матрицы 8*8 элементов разложения. Штриховые шрифты опреде-

ляются серией векторов. Обычно штриховые шрифты хранятся в отдельных

файлах на системном диске и при обращении к процедуре загружаются в

динамически определяемую память компьютера автоматически.

"По умолчанию", т.е. без обращения к данной процедуре

автоматически устанавливается растровый шрифт, горизонтальный вывод

и единичный размер символов.

На следующем экране Вы можете наблюдать примеры стандартных

шрифтов. После названия каждого из них через запятую указан коэффи-

циент увеличения.

#

1 ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ

#

ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ

* procedure SetUserCharSize(MultX,DivX,MultY,DivY:word);

Используется после установки штрихового шрифта с целью измене-

ния пропорций символов. Отношение MultX/DivX -коэффициент масштаби-

рования обычной ширины используемого архивного штрихового шрифта.

2MultY/DivY - коэффициент масштабирования высоты шрифта.

#

ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ

* function TextHeight(TextString:strig):word;

Возвращает высоту заданной текстовой строки TextString в элемен-

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

процедурами SetTextStyle и SetUserCharSize .

* function TextWidth(TextString:string):word;

Возвращает ширину заданной текстовой строки TextString при тех

же условиях, что и функция TextHeight.

* procedure SetTextJustify(Horiz,Vert:word);

Обеспечивает привязку выводимого графического текста к теку-