Процедуры модуля Graph icon

Процедуры модуля Graph



НазваниеПроцедуры модуля Graph
Дата конвертации15.07.2012
Размер99.02 Kb.
ТипДокументы

Процедуры модуля Graph


Процедура

Формат

Действие

SetColor

SetColor(a: word);

Устанавливает цвет, которым будет осуществляться рисование

SetBkColor

SetBkColor(a: word);

Устанавливает цвет фона

SetFillStyle

SetFillStyle(a, b: word);
a - стиль закраски, b - цвет

Устанавливает стиль и цвет закраски

SetLineStyle

SetLineStyle(a, b, c: word);
а - стиль линии, b- образец построения линии (может устанавливаться пользователем), с-толщина линии

Устанавливает стиль и толщину линии

SetTextStyle

SetTextStyle(a, b, c: word);

Устанавливает шрифт, стиль и размер текста

SetFillPattern

SetFillPattern(Pattern: FillpatternType; Color: word); Pattern - маска

Выбирает шаблон заполнения, определенный пользователем

ClearDivice

ClearDivice;

Очищает экран и устанавливает текущий указатель в начало

SetViewPort

SetViewPort(x1, y1, x2, y2: integer, Clip: boolean);

Устанавливает текущее окно для графического вывода

ClearViewPort

ClearViewPort

Очищает окно

PutPixel

PutPixel(a, b, c: integer);

Рисует точку цветом с в (x,y)

Line

Line(x1, y1, x2, y2: integer);

Рисует линию от (x1, y1) к (x2,y2)

Rectangle

Rectangle(x1, y1, x2, y2: integer);

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

Bar

Bar(x1, y1, x2, y2: integer);

Рисует закрашенный прямоугольник

Bar3D

Bar3D(x1, y1, x2, y2, d: integer; a: boolean);

Рисует трехмерную полосу (параллелепипед)

Circle

Circle(x, y, r: word);

Рисует окружность радиуса r с центром в точке (x, y)

Arc

Arc(x, y, a, b, R: integer);
a, b- начальный и конечный углы в градусах

Рисует дугу из начального угла к конечному, используя (x,y) как центр

Ellipse

Ellipse(x, y, a, b, Rx, Ry: integer);
a, b - начальный и конечный углы в градусах

Рисует эллиптическую дугу от начального угла к конечному, используя (x, y) как центр

FillEllipse

FillEllipse(x, y, Rx, Ry: integer);
Rx, Ry - вертикальная и горизонтальная оси

Рисует закрашенный эллипс

MoveTo

MoveTo(x, y: integer);

Передвигает текущий указатель в (x, y)

MoveRel

MoveRel(x, y: integer);

Передвигает текущий указатель на заданное расстояние от текущей позиции на x по горизонтали и на y по вертикали

OutText

OutText(text: string);

Выводит текст от текущего указателя

OutTextxy

OutTextxy(x, y: integer; text: string);

Выводит текст из (x, y)

Sector

Sector(x, y, a, b, Rx, Ry: integer);
a, b - начальный и конечный углы в градусах

Рисует и заполняет сектор эллипса

^ Цветовая шкала

Цвет

Код

Цвет

Код

Black – черный

0

DarkGray – темно-серый

8

Blue – синий

1

LightBlue – голубой

9

Green - зелёный

2

LghtGreen – ярко-зеленый

10

Gyan – бирюзовый

3

LightGyan – ярко-бирюзовый

11

Red – красный

4

LightRed – ярко-красный

12

Magenta – малиновый

5

LightMagenta – ярко-малиновый

13

Brown – коричневый

6

Yellow – желтый

14

LightGray – светло-серый

7

White – белый

15

Пример:
^ PutPixel (320, 240, 4); или PutPixel (320, 240, Red); - выводит в центре экрана точку красного цвета.

Вывод линии

Из точек строятся линии (отрезки прямых). Это можно сделать с помощью процедуры Line(x1, y1, x2, y2: integer); - где x1, y1 – координаты начала, x2,y2 - координаты конца линии, например Line (1,1,600,1);

В процедуре Line нет параметра для установки цвета. В этом случае цвет задается процедурой ^ SetColor(цвет: word); где цвет из таблицы 1.

Пример:
SetColor(Gyan);
Line(1,1,600,1);


Для черчения линий применяются еще две процедуры: LineTo и LineRel.

Процедура LineTo(x, y: integer) строит линию из точки текущего положения указателя в точку с координатами x,y. Процедура LineRel(dx,dy:integer) проводит линию от точки текущего расположения указателя x,y в точку x+dx, y+dy.

Турбо Паскаль позволяет вычерчивать линии самого различного стиля: тонкие, широкие, штриховые, пунктирные и т.д. Установка стиля производится процедурой SetLineStyle(a,b,c:>word),где a - устанавливает тип строки, возможные значения которого приведены в таблице 2; b – образец, с – толщина линии, определяемая константами, указанными в таблице 3. Если применяется один из стандартных стилей, то значение b равно 0. Если пользователь хочет активизировать собственный стиль, то значение b=4. В этом случае пользователь сам указывает примитив (образец), из которого строится линия.

Например
SetLineStyle(1, 0, 1);
Line(15, 15, 150, 130);

   или
^ SetLineStyle(UserBitLn, $5555, ThickWidth);
Line(15, 15, 150, 130);



таблица 2

Константа

Значение

Описание

SolidLn

0

Непрерывная линия

DottedLn

1

Линия из точек

CenterLn

2

Линия из точек и тире

DashedLn

3

Штриховая линия

UserBitLn

4

Тип пользователя

таблица 3

Константа

Значение

Описание

NormWidth

1

Нормальная толщина (1 пиксель)

ThickWidth

3

Жирная линия (3 пикселя)


Пример:
Написать программу, которая вычерчивает треугольник красной линией в центре экрана.
Program treug;
uses graph; { подключение библиотеки графических процедур}
var gd,gm:integer; {описание переменных, определяющих графический драйвер и монитор}
begin
  gd:=detect; {определение значений переменных по выбору ПК}
  initgraph (gd,gm,‘c:/bp’); {инициализация графического режима}
  SetColor (4); {задание цвета линии}
  SetLineStyle (1,0,3); {задание стиля линии}
  Line (320, 240, 320, 180);
  Line (320, 240, 390, 240);
  Line (390, 240, 320, 180);
end.

^

Построение многоугольников


Построение прямоугольников
Для построения прямоугольных фигур имеется несколько процедур. Первая из них – вычерчивание одномерного прямоугольника: Rectangle(x1,y1,x2,y2:integer), где x1, y1– координаты левого верхнего угла, x2, y2- координаты правого нижнего угла прямоугольника. Область внутри прямоугольника не закрашена и совпадает по цвету с фоном.
Более эффектные для восприятия прямоугольники можно строить с помощью процедуры Bar(x1, y1, x2, y2:integer), которая рисует закрашенный прямоугольник. Цвет закраски устанавливается с помощью SetFillStyle. Ещё одна эффектная процедура: Bar3D(x1,y1, x2,y2, d:integer,a:boolean) вычерчивает трехмерный закрашенный прямоугольник (параллелепипед). При этом используются тип и цвет закраски, установленные с помощью SetFillStyle. Параметр d представляет собой число пикселей, задающих глубину трехмерного контура. Чаще всего его значение равно четверти ширины прямоугольника (d:=(x2 - x1) div4). Параметр a определяет, строить над прямоугольником вершину (а:=True) или нет (a:=False).
Примеры использования:
1. SetColor(Green);
   Rectangle (200, 100, 250, 300);

2. SetFillStyle(1,3);
   Bar(10, 10, 50, 100
);
3. SetFillStyle(1,3);
    Bar3D(10,10,50,100,10,True);


Построение многоугольников
Многоугольники можно рисовать самыми различными способами, например с помощью процедуры ^ Line. Однако в Турбо Паскале имеется процедура DrawPoly, которая позволяет строить любые многоугольники линией текущего цвета, стиля и толщины. Она имеет формат DrawPoly( a: word, var PolyPoints)
Параметр PolyPoints является нетипизированным параметром, который содержит координаты каждого пересечения в многоугольнике. Параметр а задает число координат в PolyPoints. Необходимо помнить, что для вычерчивания замкнутой фигуры с N вершинами нужно передать при обращении к процедуре DrawPoly N+1 координату, где координата вершины с номером N будет равна координате вершины с номером 1.

^ Проиллюстрируем на примере:
program tr; {Программа вычерчивает в центре экрана треугольник красной линией}
  uses crt, graph;
var gd, gm: integer; pp:array[1..4] of PointType;
      xm,ym, xmaxD4, ymaxD4:word;
begin
  gd:=detect;
  Initgraph(gd,gm,‘c:/bp’);
xm:=GetmaxX;
  ym:=GetmaxY;
  xmaxD4:=xm div 4;
  ymaxD4:=ym div 4; {определение координат вершин}
  pp[1].x:= xmaxD4;
  pp[1].y:= ymaxD4;
  pp[2].x:= xm - xmaxD4;
  pp[2].y:= ymaxD4;
  pp[3].x:= xm div 2;
  pp[3].y:= ym - ymaxD4;
  pp[4]:=pp[1];
  SetColor(4); {цвет для вычерчивания}
  DrawPoly(4,pp); {4 – количество пересечений +1}
  readln;
  CloseGraph
end.


В результате работы программы на экране появится красный треугольник на черном фоне. Изменить фон внутри треугольника можно с помощью процедуры FillPoly(a:word,var PolyPoints). Значения параметров те же, что и в процедуре DrawPоly. Действие тоже аналогично, но фон внутри многоугольника закрашивается. В качестве примера нарисуем в левой верхней части экрана четырехугольную звезду зеленого цвета:

program g;
  uses crt, graph;
  const Star:array[1..18] of integer = (75, 0, 100, 50, 150, 75, 100, 100, 75, 150, 50, 100, 0, 75, 50, 50, 75, 0);
  var gd, gm: integer;
begin
  gd:=detect;
  initgraph(gd, gm,‘c:/bp’);
  SetFillStyle(1,2);
  FillPoly(9,Star); {9 – количество пересечений + 1}
  CloseGraph;
end.


^

Построение дуг и окружностей


Процедура вычерчивания окружности текущим цветом имеет следующий формат:
Cicrle (x,y,r:word), где x,y – координаты центра окружности, r – ее радиус.
Например, фрагмент программы обеспечит вывод ярко-зеленой окружности с радиусом 50 пикселей и центром в точке (450, 100):

^ SetColor(LightGreen);
Circle(450, 100, 50);


Дуги можно вычертить с помощью процедуры Arc(x,y:integer,a,b,R:integer), где x,y - центр окружности, a,b - начальный и конечный углы в градусах, R – радиус. Для задания углов используется полярная система координат.
Цвет для вычерчивания устанавливается процедурой SetColor.В случае a=0 и b=360, вычерчивается полная окружность.
Например, выведем дугу красного цвета от 0 до 90° в уже вычерченной с помощью Circle(450, 100, 50) окружности:

^ SetColor(Red);
Arc(450, 100, 0, 90, 50);


Для построения эллиптических дуг предназначена процедура Ellipse (x, y: integer, a, b, Rx, Ry: integer), где x, y – центр эллипса, Rx, Ry:горизонтальная и вертикальная оси. В случае a=0 и b=360 вычерчивается полный эллипс.
Например, построим голубой эллипс:

^ SetColor (9);
Ellipse (100, 100, 0, 360, 50, 50);


Фон внутри эллипса совпадает с фоном экрана. Чтобы создать закрашенный эллипс, используется специальная процедура FillEllipse (x, y: integer, Rx, Ry: integer). Закраска эллипса осуществляется с помощью процедуры SetFillStyle(a,b:word), где а – стиль закраски (таблица 4), b – цвет закраски (таблица 1).
Например, нарисуем ярко-красный эллипс, заполненный редкими точками зеленого цвета:

^ SetFillStyle (WideDotFill,Green); { установка стиля заполнения}
SetColor (12); {цвет вычерчивания эллипса}
FillEllipse(300, 150, 50, 50);

Стандартные стили заполнения

Константа

Значение

Маска

EmptyFill

0

Заполнение цветом фона

SolidFill

1

Заполнение текущим цветом

LineFill

2

Заполнение символами --, цвет – color

LtslashFill

3

Заполнение символами // нормальной толщины, цвет – color

SlashFill

4

Заполнение символами // удвоенной толщины, цвет – color

BkslashFill

5

Заполнение символами \\ удвоенной толщины, цвет – color

LtbkSlahFill

6

Заполнение символами \\ нормальной толщины, цвет – color

HatchFill

7

Заполнение вертикально-горизонтальной штриховкой тонкими линиями, цвет – color

XhatchFill

8

Заполнение штриховкой крест-накрест по диагонали «редкими» тонкими линиями, цвет – color

InterLeaveFill

9

Заполнение штриховкой крест-накрест по диагонали «частыми» тонкими линиями, цвет – color

WideDotFill

10

Заполнение «редкими» точками

CloseDotFill

11

Заполнение «частыми» точками

UserFill

12

Заполнение по определенной пользователем маске заполнения, цвет – color

таблица 4

Для построения секторов можно использовать следующие процедуры:
^ PieSlice (x,y:integer,a,b,R:word),которая рисует и заполняет сектор круга. Координаты x,y – центр окружности, сектор рисуется от начального угла a до конечного угла b, а закрашивание происходит при использовании специальных процедур;

Sector (x, y: integer, a, b, Rx, Ry: word), которая создает и заполняет сектор в эллипсе. Координаты x,y – центр, b, Rx, Ry – горизонтальный и вертикальный радиусы, и сектор вычерчивается от начального угла a до конечного угла b.

Пример использования PieSlice
SetFillStyle (10, 10); {установка стиля}
SetColor (12); {цвет вычерчивания}
PieSlice (100, 100, 0, 90, 50);


Пример использования Sector
SetFillStyle (11, 9); {установка стиля}
SetColor (LightMagenta);{цвет вычерчивания}
Sector (300, 150, 180, 135, 60, 70);




Похожие:

Процедуры модуля Graph iconОбработка данных gps-модуля
На выходе gps-модуля данные о местоположении представлены в виде стандартного протокола nmea-0183 принятого для сообщений между корабельными...
Процедуры модуля Graph iconПроцедуры с параметрами Задания Первая группа
Напишите процедуры с параметрами, при выполнении которых черепашка нарисует следующие узоры
Процедуры модуля Graph iconПроцедуры с параметрами
Параметр это величина, которая может принимать различные значения и описывает какие-либо характеристики объектов. Параметр имеет...
Процедуры модуля Graph iconФакультативное занятие по теме: «Графики квадратичных функций, содержащих модули»
Когда в «стандартные» функции, которые задают прямые, параболы, гиперболы, включают знак модуля, их графики становятся необычными....
Процедуры модуля Graph iconПриложение к приказу министерства образования Саратовской области
Министерством юстиции Российской Федерации 26 апреля 2010 года, регистрационный номер №2322, настоящее Положение определяет формы...
Процедуры модуля Graph iconПриложение к приказу министерства образования Саратовской области
Министерством юстиции Российской Федерации 26 апреля 2010 года, регистрационный номер №2322, настоящее Положение определяет формы...
Процедуры модуля Graph iconДокументы
1. /Построение графиков функций,выражение которых содержит знак модуля/методические и технические...
Процедуры модуля Graph iconДокументы
1. /GRAPH.TXT
Процедуры модуля Graph iconДокументы
1. /On graphs that do not contain a Thomsen graph.djvu
Процедуры модуля Graph icon«15» ноября 2011 года №2451-р Об апробации процедуры государственной (итоговой) аттестации обучающихся, освоивших программы основного общего образования, с участием территориальных экзаменационных комиссий в Ленинградской области в 2012 году
Об апробации процедуры государственной (итоговой) аттестации обучающихся, освоивших программы основного общего образования
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов