Обучающая программа "Графика" программированию в графическом режиме на языке 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