Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[25]

x:=x + 1;

end; { курсор вправо вверх Page Up }

x:=x + 1;

end; {курсор вправо вниз Page Down }

x:=x - 1;

end; { курсор влево вверх Home }

x:=x - 1;

end; {курсор влево вниз End }

{ вывод символа }

gotoXY(x, y)

{ перемещение курсора }

until ch= #27;{ выход при нажатии клавиши Esc }

Практическое задание N 1. 45

1.Перемещать курсор по экрану с запоминанием выводимых символов и их координат. После окончания "рисования" на экране символов запрограммировать "бесконечный процесс домино" - последовательное исчезновение символов с первого до последнего и восстановление в обратном порядке.

2.Перемещать курсор по экрану с запоминанием выводимых символов и их координат. После окончания "рисования " на экране символов в виде замкнутой фигуры запрограммировать "бесконечный процесс бегущих" символов - последовательное исчезновение символа, задержка и его восстановление и т. д. с первого символа до последнего.

3/4. "Озвучить" клавиши: цифровые, либо буквы латинского алфавита.

1. 15. Модуль Graph 1. 15. 1. Инициализация графического режима

Графический режим ПК существенно отличается от текстового как по принципам функционирования, так и по возможностям. Графика применяется практически во всех серьезных программных разработках, так как позволяет увидеть результаты расчетов в виде чертежей, графиков, иллюстраций в движении. Фирмой Borland разработана библиотека графических функций (Модуль Graph. tpu) как приложение к Turbo-пакетам фирмы Borland и графические драйверы - файлы *. bgi (Borland Graphics Interface ), обеспечивающие взаимодействие программ с графическими устройствами.

Подключение графической библиотеки при программировании в среде Turbo-Pascal производится оператором:

Uses Graph;

Переход из текстового режима к графическому (инициализация графики) осуществляется оператором:

InitGraph(Gd, Gm, way);

где Gd - имя графического драйвера (параметр- переменная),

Gm - номер графического режима монитора (параметр- переменная), way - дорожка DOS к файлам с графическими драйверами (*. bgi), например, C:\TP7\BGI .

Файлы графических драйверов принято хранить в поддиректории BGI. Если эти файлы располагаются в текущей директории, то дорожку DOS можно не указывать.


В графическом режиме изображение формируется из точек (пикселов) разных цветов. Количество точек на экране и число допустимых цветов можно задавать выбором подключаемого драйвера и номером графического режима. Вариации графических режимов весьма разнообразны, особенно для качественных мониторов. Например, адаптер IBM 8514 / A может обеспечить разрешение 1024 х768 точек и 256 цветов. Однако не все программные продукты рассчитаны на такие режимы.

Приведем таблицу графических возможностей для мониторов EGA, VGA.

Монитор

драйвер "Gd"

"Gm"

Число точек на экране

Число цветов

Число видеостраниц

640 x 200

640 x 350

640 x 200

640 x 350

640 x 480

Обычно драйверы подключаются в режиме автоопределения используемого монитора ПК. Для этого перед инициализацией графики задается Gd:= Detect; или Gd:= 0;. В этом случае по умолчанию устанавливается режим с наибольшим числом точек на экране, а значение параметра "Gm" игнорируется. Номер наибольшего режима для текущего драйвера возвращает функция GetMaxMode; .

Изменить режим можно процедурой SetGraphMode(Gm);

где 0 =<Gm<= GetMaxMode. Экран при этом очищается.

GetMaxX;

GetMaxV;

Разрешающую способность для текущего графического режима можно определить функциями, возвращающими максимальные значения координат экрана: GetMaxX; - по оси "Х", GetMaxY; - по оси "V".

Начало координат (X= 0, Y= 0) расположено в левом верхнем углу экрана. Ось Х направлена слева направо, ось Y - сверху вниз. Для возврата из графического режима в текстовый можно использовать операторы:

CloseGraph; RestoreCrtMode;

- полное прекращение работы графической системы, переключение в текстовый режим с возможностью возврата к текущим установкам графического режима (без восстановле-

ния графического изображения) оператором SetGraphMode;

1. 15. 2. Простейшие графические процедуры и функции

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

SetBkColor(N);

SetColor(N);

- установить цвет "N" для пикселов фона.

По умолчанию установлен черный цвет фона. установить цвет "N" для выводимых линий.


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

PutPixel(X, Y, N);

высветить цветом "N" пиксел с координатами X, Y.

Наибольшее значение параметра "N" возвращает функция GetMaxColor;. Цвет задается аналогично цветам текста в модуле Crt - мож-но использовать целое число или соответствующую константу, например, при N<16: 0 - Black, 1 - Blue, . . 15 - White. Режим мерцания в графике не предусмотрен.

Circle(X, Y, R);

Line(x1, y1, x2, y2);

построить окружность с центром X, Y и радиусом R.

- построить отрезок прямой линии от точки с координатами x1, y1 к точке с координатами x2, y2. - построить прямоугольник с левым верхним углом в точке с координатами x1, y1 и правым нижним углом в точке с координатами x2, y2 ( стороны параллельны краям экрана ).

GetPixel(X, Y); - функция возвращает цвет пиксела с координатами X, Y.

Rectangle(x1, y1, x2, y2);

Координаты точек имеют тип 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. Чтобы точки не "за-



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53]