Rambler's Top100

Билет 18. Вопрос 1.

Графические возможности языка ПАСКАЛЬ.

 

Этот модуль используется для создания графических изображений различной сложности. Все процедуры и функции данного модуля хранятся на диске в файле GRAPH.TPU.

В графическом режиме экран компьютера представляет собой множество точек (пикселов). Их число зависит от типа дисплея:

CGA - 640*200

EGA - 640*350

VGA - 640*480 ( Наш размер )

SVGA - 1024*786

 

ИНИЦИАЛИЗАЦИЯ ГРАФИЧЕСКОГО РЕЖИМА.

 

Для инициализации модуля GRAPH требуется:

1) подключить его в программе после заголовка по команде USES GRAPH;

2) сама инициализация выполняется по команде

INITGRAPH( DRIVER, MODE, '') , где DRIVER, MODE - имена переменных целого типа, описанные в разделе VAR. Значение переменной DRIVER можно определить до инициализации по команде

DRIVER:=DETECT.

Ее выполняют в том случае, когда вы не знаете тип вашего дисплея. Команда DETECT позволяет автоматически определить тип вашего дисплея.

Параметр MODE задает режим работы экрана.

'' - строка, указывающая на путь к директории, где располо-

жены графические драйверы *.BGI. Например: 'C:\BP\BGI'

Если они находятся там же, где и файл TURBO.EXE, то эта

строка может быть пустой.

3) перед выходом из программы графический режим нужно закрыть

командой CLOSEGRAPH.

 

Общий вид программы для работы с графикой:

 

program vv;

uses GRAPH;

var grd, grm:integer;

begin

grd:=detect;

initgraph (grd, grm, ''); ( вызов процедуры )

.....

.....

closegraph

end.

После инициализации графического режима можно:

1) выполнять графические построения;

2) выводить текст;

3) использовать элементы движения изображений.

В конце работы с графическим режимом необходимо обязательно выйти из него с помощью команды CLOSEGRAPH.

 

ОПИСАНИЕ ОСНОВНЫХ ПРОЦЕДУР И ФУНКЦИЙ МОДУЛЯ GRAPH.

 

•  setcolor (c) -устанавливает текущий цвет изображения, где c - число соответствующее номеру цвета.

•  setbkcolor (c) - устанавливает текущий цвет фона.

 

Управление курсором (указателем).

 

•  moveto (x,y) - перенести текущий указатель в точку (X,Y).

•  moverel (dx,dy) - переместиться в точку с координатами x+dx, y+dy.

Или другими словами сместиться на вектор (dx,dy) относительно текущей точки.

•  putpixel (x,y,cоlor) - рисуется точка с координатами (x,y) указанного цвета.

 

Установка стиля линий.

 

Есть возможность рисовать контур разными типами линий.

setlinestyle (тип строки, 0, толщина)

Тип строки:

0 - сплошная линия;

1 - пунктирная линия;

2 - штрих-пунктирная линия;

3 - штриховая.

Толщина: 1 - нормальная;

3 - жирная.

Рисование контурных геометрических изображений

 

Для этих изображений цвет фона и текущий цвет устанавливаются описанными выше средствами.

•  line (x1,y1,x2,y2) - нарисовать линию, соединяющую точки (x1,y1) и (x2,y2) текущим цветом.

•  lineto (x,y ) - соединяет текущую точку с точкой (x,y).

•  rectangle (x1,y1,x2,y2) - контур прямоугольника с диагональю (x1,y1,x2,y2).

•  circle (x,y,r) - окружность с центром (x,y) радиусом r.

•  ellipse (x,y,n,k,r1,r2) - эллиптическая дуга, x, y - координаты центра, n,k - начальный и конечный угол в градусах, r1,r2 - горизонтальная и вертикальная полуоси.

•  arc (x,y,n,k,r) - дуга окружности.

 

Вывод текста на графический экран.

 

Очистка графического экрана:

•  cleardevice - очистка текущим цветом фона;

•  clearviewport - очистка цветом 0.

Команды readln(n), writeln(n) действуют только в текстовом экране. Для вывода текста на экран в графическом режиме используются различные шаблоны. Для вывода текста используются две команды:

•  outtext(s); s - переменная или константа строкового типа. Эта команда вызывает вывод строки s, начиная с позиции текущего курсора текущим цветом. После вывода текста текущий указатель смещается в его конец.

•  outtextxy(x1,y1,s); x1,y1 - координата начала вывода текста, s - переменная или константа строкового типа.

ПРИМЕРЫ.

outtext('НАЖМИТЕ ЛЮБУЮ КЛАВИШУ');

outtextxy(50,100,'НАЖМИТЕ ЛЮБУЮ КЛАВИШУ');

Установка шрифта и стиля.

 

settextstyle (шрифт, направление, размер символов)

 

Шрифт: 0 - матричный ( 8*8 ); (Мы только его будем использовать)

1 - полужирный;

2 - тонкий;

3 - рубленый;

4 - готический.

Направление: 0 - слева направо;

1 - снизу вверх;

2 - слева направо боком.

Размер символов: 1 - норма;

2 - больше;

3 - еще больше и т.д.

Вывод чисел.

 

Для вывода чисел необходимо использовать процедуру перевода числа в строковую переменную:

str (i,s)

Пример :

i:integer;

s:string;

begin

i:=5;

str(i,s);

outtextxy(100,30,s);

end.

Рисование закрашенных изображений

 

При закраске таких изображений команда setcolor не действует. Для рисования и закрашивания используется специальная команда цвета со своим шаблоном и номером цвета:

setfillstyle (sh,c1).

sh - шаблон закраски, число от 0 до 12:

0 - область заполняется цветом фона;

1 - сплошная закраска цветом c1;

2 - шаблон закраски линиями ;

3 - // нормальной толщины;

4 - // удвоенной толщины;

5 - \\ удвоенной толщины;

6 - \\ нормальной толщины;

7 - заполнение клеткой;

8 - заполнение косой редкой клеткой;

9 - заполнение косой частой клеткой;

10 - заполнение редкими точками;

11 - заполнение частыми точками;

Все шаблоны цветом c1. c1 - номер цвета закраски.

floodfill (x,y,c)

закрашивает область внутри или вне замкнутой фигуры установленным стилем ( по команде setfillstyle.)

x,y - координаты точки внутри или вне замкнутого контура.

с - цвет контура, являющийся границей распространения заливки.

Пример прямоугольника, левая верхняя половина закрашена линиями, а правая нижняя - точками.

setcolor (3);

rectangle (10,10,630,470);

line (10,470,630,10);

setfillstyle (3,4);floodfill (20,20,3);

setfillstyle (10,5);floodfill (620,460,3);

Закрашенный прямоугольник.

 

bar (x1,y1,x2,y2) , где (x1,y1) и (x2,y2) - координаты противоположных углов.

ПРИМЕР: setfillstyle (11,12);

bar (10,20,100,200)

Параллелепипед.

 

bar3d (x1,y1,x2,y2,d,e), где x1,y1,x2,y2 - координаты диагонали передней грани.

d - длина изображения;

e - значение булевого типа.

Если e - истинно (TRUE), то рисуется верхняя грань; если e - FALSE - не рисуется.

ПРИМЕР: После выполнения этой команды на экране появляется соответствующий параллелепипед с закрашенной передней гранью.

setfillstyle (1,12)

bar 3d (50,70,150,200,40,true).

Закрашенный эллипс .

 

fillellipse ( x,y,r1,r2); (x,y) - центр эллипса , r1,r2 - полуоси .

Секторы круга и эллипса.

 

pieslice (x,y,u1,u2,r); сектор круга с центром в точке (x,y) и радиусом r.

u1,u2 - начальный и конечный углы в градусах.

Сам контур сектора рисуется текущим цветом.

sector (x,y,u1,u2,r1,r2) - сектор эллипса закрасится тем цветом, который в шаблоне, контуры будут нарисованы текущим цветом.

Параметры такие же как и в эллиптической дуге.

Изображение многоугольника

 

drowpoly (число вершин, координаты вершин) рисуется контур многоугольника с указанными вершинами.

fillpoly (число вершин, координаты вершин) - закрашенный многогольник.

 

Вверх

Белорусский рейтинг MyMinsk.com Сайты беларуси Регистр "ЗУБР" Каталог на TIGA.BY, а также  новости, работа, объявления, фото и многое другое Рейтинг@Mail.ru Rambler's Top100 Белорусский каталог программ Faststart - рейтинг сайтов, каталог интернет ресурсов, счетчик посещаемос­ти Яндекс.Метрика
Hosted by uCoz