Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник заданий по T-Pascal.doc
Скачиваний:
64
Добавлен:
18.03.2015
Размер:
3.03 Mб
Скачать

Функции модуля Graph

GetBkColor

Возвращает текущий фоновый цвет

GetColor

Возвращает текущий цвет

GetX

Возвращает координату X текущей позиции

GetY

Возвращает координату Y текущей позиции

GetPixel

Возвращает цвет точки в (x, y)

8.3 Экран и окно в графическом режиме

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

По умолчанию окно занимает весь экран, значения координат его левого верхнего и правого нижнего угла устанавливаются автоматически процедурой инициализации InitGraph.

Если требуется создать окно, следует воспользоваться процедурой SetViewPort (x1, y1, x2, y2 : integer, Clip:boolean) ; где x1, y1 – координаты левого верхнего угла, x2, y2

координаты правого нижнего угла окна. Параметр Clip определяет, будет ли рисунок отсекаться при выходе за границы окна (Clip:= True) или нет (Clip:=False). После создания окна за точку отсчета принимается верхний левый угол окна, имеющий координаты (0,0).

Координатную систему полного экрана можно восстановить, в частности, с помощью ClearDevice или задав в процедуре установки окна максимально возможные значения:

SetViewPort( 0, 0, GetMaxX, GetMaxY, true);

Необходимо помнить, что в отличие от текстовых окон графические окна после команды установки фона SetBkColor и очистки с помощью ClearViewPort меняют фон вместе с общим фоном экрана. Поэтому фон (точнее «закраску») графического окна следует устанавливать с помощью процедур SetFillStyle и SetFillPattern.

Машинные координаты

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

На рисунке приведена также машинная (xm, ym) и физическая (x,y) системы координат. Для изображения на экране точки с физическими координатами (x,y) необходимо определить ее машинные координаты (xm, ym). Расчетные формулы имеют следующий вид (попробуйте самостоятельно получить эти формулы):

xm=x0+x*Mx ,

ym=y0-y*My,

где Mx, My-масштабы соответственно по осям x и y, которые показывают число пикселей в одной физической единице,

x, y- физические координаты точки,

xm, ym- машинные координаты точки,

x0, y0- машинные координаты начала физической системы координат.

Пример. Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

Этапы разработки программы сведены в таблицу.

Таблица

N

Этапы программирования

Выполнение

1.

Постановка задачи

Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

2.

Математическое описание

Изобразим вид экрана с указанием координат

требуемых линий

3.

Разработка структограммы

4.

Написание программы

Program P5;

Uses graph; {подключение граф.модуля}

Var gd,gm:integer;

Begin

gd:=detect;{определение граф. драйвера}

InitGraph(gd,gm,’ ‘);{инициализация

графики}

Line(0, round(GetMaxY/2), GetMaxX,

Round(GetMaxY/2));{гориз. лин.}

Line(round(GetMaxX/2), 0,

Round(GetMaxX/2), GetMaxY);

{вертик. лин.}

Readln; {пустой ввод}

CloseGraph; {закрытие графики}

End.

5.

Отладка и получение результатов

Выполнить самостоятельно