TURBO PASCAL |
Новости |
1. 15. 2. Простейшие графические процедуры и функции
После инициализации графического
режима экран очищается и можно
использовать процедуры рисования.
SetBkColor(N);
-
установить цвет "N" для пикселов фона.
По умолчанию установлен черный цвет
фона.
SetColor(N); - установить цвет "N" для выводимых
линий. По умолчанию установлен белый цвет линий.
PutPixel(X,
Y, N);
- высветить цветом "N" пиксел с
координатами X, Y.
Наибольшее значение параметра "N"
возвращает
функция GetMaxColor;. Цвет задается аналогично цветам
текста в модуле Crt - мож-но использовать целое
число или соответствующую константу,
например, при N<16:
0
- Black, 1 - Blue, . .
15 -
White. Режим мерцания в графике
не предусмотрен.
Circle(X, Y, R);
-
построить окружность с центром X, Y и
радиусом R.
Line(x1, y1, x2, y2);
- построить
отрезок прямой линии
от точки с коорди-
натами
x1, y1 к точке с
координатами x2, y2.
Rectangle(x1, y1, x2, y2);
- построить
прямоугольник с
левым верхним
углом в
точке с координатами x1,
y1 и правым нижним углом в точке с
координатами x2, y2 (
стороны параллельны краям экрана ).
GetPixel(X, Y); - функция возвращает цвет пиксела с координатами X, Y.
Координаты точек имеют тип Integer, остальные параметры -
тип
Word.
Значения координат задаются в пределах
0 £X£
GetmaxX; 0 £Y£
GetmaxY;
Перемещение курсора за пределы экрана
игнорируется.
Очистить графический экран можно
процедурами: ClearDevice;
(без изменения установленных параметров),
либо
GraphDefaults; (устанавливаются
параметры, принятые
по умолчанию).
Рассмотрим пример фрагмента программы: Uses
Crt, Graph;
{
раздел описаний для фрагментов программ N1-
N8 } const N= 500; var X, Y, Vx, Vy, P: array[1..N] of integer; ch: char; Gd, Gm, Gx, Gy,
x1, y1, x2, y2, xc, yc, dx, dy, r: integer; i1, i2, zx, zy,
ax, ay, i, k: integer; begin {
инициализация графики для фрагментов
программ N1-
N8 }
Gd:=Detect; InitGraph(Gd,Gm,'C:\tp7\bgi');Randomize;
Gx:=GetMaxX; Gy:=GetMaxY; {-----------------------------------------------------------------
Фрагмент N 1 программы "небо в алмазах"
(
рисование пикселов ). ----------------------------------------------------------------- } SetColor(0);
Repeat i:= 9 + random(7); xc:= random(Gx);
yc:= random(Gy); PutPixel(xc, yc, i); Circle(xc,
yc, 3)
Until KeyPressed; {---------------------------------------------------------------- } While KeyPressed do ch:= ReadKey;
{
очистка буфера клавиатуры } CloseGraph;
end.
{ закончить работу в графическом режиме
}
После инициализации графики
определяются переменные Gx, Gy -
максимальные значения координат по осям X,
Y. Назначается
черный цвет для линий, которые
будут выводиться. Затем
в цикле повторяется до нажатия любой
клавиши высвечивание точек (пикселов) с
номерами цвета "i" от 9 до 15 и
координатами xc, yc. Значения
координат точек и номеров цвета
определяются из заданного диапазона
функцией Random. Чтобы
точки не "забивали" экран,
некоторые из них "гасятся"
окружностью радиусом 3 пиксела с центром в
появившейся точке. |
(с) Все права защищены. По всем интересующим вопросам прошу писать электронный адрес |