|
Процедуры модуля Graph
^
Пример: ^ или PutPixel (320, 240, Red); - выводит в центре экрана точку красного цвета. Вывод линии Из точек строятся линии (отрезки прямых). Это можно сделать с помощью процедуры Line(x1, y1, x2, y2: integer); - где x1, y1 – координаты начала, x2,y2 - координаты конца линии, например Line (1,1,600,1); В процедуре Line нет параметра для установки цвета. В этом случае цвет задается процедурой ^ где цвет из таблицы 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); или ^ таблица 2
таблица 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); Построение многоугольников Многоугольники можно рисовать самыми различными способами, например с помощью процедуры ^ Однако в Турбо Паскале имеется процедура 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): ^ Дуги можно вычертить с помощью процедуры Arc(x,y:integer,a,b,R:integer), где x,y - центр окружности, a,b - начальный и конечный углы в градусах, R – радиус. Для задания углов используется полярная система координат. Цвет для вычерчивания устанавливается процедурой SetColor.В случае a=0 и b=360, вычерчивается полная окружность. Например, выведем дугу красного цвета от 0 до 90° в уже вычерченной с помощью Circle(450, 100, 50) окружности: ^ Для построения эллиптических дуг предназначена процедура Ellipse (x, y: integer, a, b, Rx, Ry: integer), где x, y – центр эллипса, Rx, Ry:горизонтальная и вертикальная оси. В случае a=0 и b=360 вычерчивается полный эллипс. Например, построим голубой эллипс: ^ Фон внутри эллипса совпадает с фоном экрана. Чтобы создать закрашенный эллипс, используется специальная процедура FillEllipse (x, y: integer, Rx, Ry: integer). Закраска эллипса осуществляется с помощью процедуры SetFillStyle(a,b:word), где а – стиль закраски (таблица 4), b – цвет закраски (таблица 1). Например, нарисуем ярко-красный эллипс, заполненный редкими точками зеленого цвета: ^ Стандартные стили заполнения
таблица 4 Для построения секторов можно использовать следующие процедуры: ^ ,которая рисует и заполняет сектор круга. Координаты 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); |
![]() | Обработка данных gps-модуля На выходе gps-модуля данные о местоположении представлены в виде стандартного протокола nmea-0183 принятого для сообщений между корабельными... | ![]() | Процедуры с параметрами Задания Первая группа Напишите процедуры с параметрами, при выполнении которых черепашка нарисует следующие узоры |
![]() | Процедуры с параметрами Параметр это величина, которая может принимать различные значения и описывает какие-либо характеристики объектов. Параметр имеет... | ![]() | Факультативное занятие по теме: «Графики квадратичных функций, содержащих модули» Когда в «стандартные» функции, которые задают прямые, параболы, гиперболы, включают знак модуля, их графики становятся необычными.... |
![]() | Приложение к приказу министерства образования Саратовской области Министерством юстиции Российской Федерации 26 апреля 2010 года, регистрационный номер №2322, настоящее Положение определяет формы... | ![]() | Приложение к приказу министерства образования Саратовской области Министерством юстиции Российской Федерации 26 апреля 2010 года, регистрационный номер №2322, настоящее Положение определяет формы... |
![]() | Документы 1. /Построение графиков функций,выражение которых содержит знак модуля/методические и технические... | ![]() | Документы 1. /GRAPH.TXT |
![]() | Документы 1. /On graphs that do not contain a Thomsen graph.djvu | ![]() | «15» ноября 2011 года №2451-р Об апробации процедуры государственной (итоговой) аттестации обучающихся, освоивших программы основного общего образования, с участием территориальных экзаменационных комиссий в Ленинградской области в 2012 году Об апробации процедуры государственной (итоговой) аттестации обучающихся, освоивших программы основного общего образования |