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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

/p>

 

 

 

 

 

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

 

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

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

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

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

 

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

&nb