Библиотеки (модули) CRT и Graph в Turbo Pascal.
Библиотека (модуль) CRT в Turbo Pascal.
http://www.examen.ru/add/School-Subjects/Mathematics-and-Computer-Science/Computer-Science/9860/9881
Библиотека CRT позволяет менять цвета и яркость экрана, производить
его очистку, управлять звуковым генератором компьютера.
Подключение модуля CRT производится директивой USES CRT, которая
указывается в разделе описаний. CRT - аббревиатура, означающая
"Электронно-лучевая трубка".
Таблица настройки цветов в модуле CRT Turbo Pascal
| Константа | Число | Цвет | Процедуры |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Основные директивы модуля CRT Uses CRT - подключение модуля CRT. TextColor - устанавливает цвет символов. TextBackGround - устанавливает цвет фона (только 8 неярких цветов). HighVideo - устанавливает включение яркости. LowVideo - устанавливает выбор низкой яркости. NormVideo - восстановление того цветового оформления, которое было на момент начала работы программы. ClrScr - производит очистку экрана. ReadKey - обеспечивает задержку изображения и выход из программы при нажатии любой клавиши, например Esc, Enter, Пробел. Sound(1000) - включение звукового сигнала частотой 1000 Гц. Sound(1500) - включение звукового сигнала частотой 1500 Гц. Delay(1000) - установка (задержка) звучания на время 1 с (1000 мс). Delay(2000) - установка (задержка) звучания на время 2 с. NoSound - отключение звукового сигнала. Пример подключения модуля CRT: USES CRT; BEGIN TextColor(14); {Задаёт желтые символы текста} TextBackGround(5); {Задаёт фиолетовый фон} HighVideo; {Устанавливает включение яркости} ClrScr; {Очищает экран}
Пример: TextColor(14+128); {Задаёт мерцание символов желтого цвета}
Пример программы, использующей модуль CRT:
Program Gas; uses CRT; var N:integer; begin TextColor(14); TextBackGround(1); highvideo; clrscr; writeln('Законы состояния идеального газа.'); writeln; writeln('Рассмотрим случаи (здесь число N - номер случая), когда:'); writeln('1) T=const, N=1.'); writeln('2) V=const, N=2.'); writeln('3) P=const, N=3.'); writeln('4) P,V,T=varia, N=4.'); writeln('5) Быстрое сжатие или расширение'); writeln('в теплоизолированном сосуде Q=0, N=5.'); write('Введите число N='); read(N); writeln; if N=1 then writeln('Изотерм. процесс, T=const, PV=const-закон Бойля-Мариотта.'); if N=2 then writeln('Изохорный процесс, V=const, P/T=const-закон Шарля.'); if N=3 then writeln('Изобарный процесс, P=const, V/T=const-закон Гей-Люсака.'); if N=4 then writeln('P,V,T=varia, PV=(M/Mo)RT-уравнение Менделеева-Клайперона.'); if N=5 then writeln('Адиабатный процесс, Q=0, (PV)Г-уравнение Пуассона.'); if N>5 then writeln('Другие случаи здесь не рассматриваются.') else writeln; writeln('Выход - любая клавиша.'); readkey; TextColor(7); TextBackGround(0); clrscr; end.
|
Библиотека (модуль) Graph в Turbo Pascal 7.0.
Язык паскаль предоставляет возможность рисования изображений. Чтобы паскаль смог это сделать необходимо подключить модуль Graf.
Шаблон графичекой программы выглядит следующим образом:
| Uses Graph; Var grDriver,grMode,res:integer; Begin grDriver:=detect; init Graph (grDriver,'путь к файлу BGI'); Операторы графических изображений Close graph; End. |
Библеотека (модуль) Graph содержит константы, процедуры и функции для управления графическим режимом работы монитора.
| Black = 0 Blue = 1 Green = 2 Cyan = 3 Red = 4 Magneta = 5 Brown = 6 LightGray = 7 | {Черный} {Синий} {Зеленый} {Голубой} {Красный} {Фиолетовый} {Коричневый} {Светлосерый} | DarkGray = 8 LightBlue = 9 LightGreen = 10 LightCyan = 11 LightRed = 12 LightMagneta = 13 Yellow = 14 White = 15 | {Темносерый} {Яркосиний} {Яркозеленый} {Яркоголубой} {Розовый} {Малиновый} {Желтый} {Белый} |
| SolidLn = 0 DottedLn = 1 CenterLn = 2 | {Сплошная} {Точечная} {Штрихпунктирная} | DashedLn = 3 NormWidth = 1 ThickWidrth = 3 | {Пунктирная} {Нормальная толщина} {Тройная толщина} |
| EmtyFill = 0 solidFill = 1 LineFill = 2 LtSlashFill = 3 SlashFill = 4 BkSlashFill = 5 LtBkSlashFill = 6 HatchFill = 7 XHatchFill = 8 InterLeaveFill = 9 WideDotFill = 10 CloseDotFill = 11 UserFill = 12 | {Заполнение цветом фона} {Сплошная штриховка} {Горизонтальная штриховка} {/// штриховка} {/// штриховка толстыми линиями} {\\\ штриховка толстыми линиями} {\\\ штриховка} {Заполнение прямой клеткой} {ЗАпонение косой клеткой} {Заполнение частой сеткой} {Заполнение редкими точками} {Заполнение частыми точками} {Тип задается пользователем} |
Arc(X,Y:integer; U1,U2,R: Word) Строит дугу окружности текущим ыветом стекущими праметрами линии. X, Y - координаты ыентра дуги, U1 - угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 - угол до конечно йточки дуги, отсчитываемый так же, как U1, R - радиус дуги.
Bar(X1,Y1,X2,Y2:integer) Строит прямоугольник, закрашенный текущим ыветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов прямоугольника.
Bar3D(X1,Y1,X2,Y2:integer;Glubina:word;Top:boolean) Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковй гранни (отсчитывая по горизонтали), Top - признак включения верхней грани (Если True - верхняя грань вычерчивается, False - не вычерчивается).
Circle(X,Y:integer;R:word) Рисует текущем цветом окружность радиуса R с центром в точке (X,Y).
ClearDevice Очищает грфический экран, закрашивает его в цвет фона.
ClearViewPort очищает выделенное графическое окно, заркрашивает его в цвет фона.
CloseGraph Закрывает графический режим, т.е. освобождает память,распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
Ellipse(X,Y:ineger; U1,U2,XR,YR:word) Рисует дугу эллипса текущим цветом; X, Y - координаты центра эллипса; U1, U2 - углы до начльной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR - горизонтальная и вертикальная полосы эллипса.
FillEllipse(X,Y:ineger; XR,YR:word) Рисует заштрихованный эллипс, используя X,Y как центр и XR, YR как горизонтальную и вертикальную полосы эллипса.
FillPoly(N:word;Vwr PolyPoints) Рисует и штрихует многоугольник, содержащий N вершинс координатами в PolyPoints.
InitGraph(Var Driver, Mode:integer;Path:String) Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. ранва""), считается что драйыер находдится в текущем каталоге.
Line(X1,Y1,X2,Y2:Integer)Рисует линию от точки X1,Y1 до точки X2,Y2.
LineTo(X,Y:Integer)Рисует линию от текущего указателя к точке X1,Y1.
MoveTo(X,Y:Integer)Смещает текущий указатель к точке X,Y.
OutTextXY(X,Y:Integer;TextString:String)Выводит текст в заданное место экрана
PieSlice(X,Y:Integer;U1,U2,Radius:Word)Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X,Y - координаты центар сектора круга; U1 и U2 - начальный и конченый кглы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, напрвленной вправо; Radius - радиус сектора.
PutPixel(X,Y:Integer;Color:Word) Выводит точку цветом Color с координатами X,Y.
Rectangle(X1,Y1,X2,Y2) Рисует контур прямоугольника, используя текущий цвет и тип линии. X1,Y1 - координаты левого верхнего угла прямоугольника, X2,Y2 - координаты правого нижнего угла прямоугольника.
Sector(X,Y:Integer; U1,U2,XR,YR:word) Рисует и штрихует сектор эллипса радиусами XR и YR с центром в X,Y от начального угла U1 к конечному углу U2.
SetBkColor(Color:Word)Устанавливает цвет фона.
SetColor(Color:Word)Устанваливает основной цвет, которым будет осуществляться рисование.
SetFillStyle(Pattern,Color:Word)Устанавливает образец штриховки и цвет.
SetLineStyle(LineStyle,Pattern,Thickness:Word)Устанавливает толщину и стиль линии.
SetTextStyle(Font,Direction,CharSize:Word)Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
SetViewPort(X1,Y1,X2,Y2: Integer; ClipOn:Boolean) Устанавливает прямоугольное окно на крафическом экране. Параметр ClipOn определяет "отсечку" элементов изображния, не умещающихся в окне.
GetMaxX и GetMaxY Возвращает значения максимальных координат экрана в текущем режиме работы, соответственно, по горизонтали и вертикали.
GraphResult Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок.ю или возвращает числовой код ошибки (от -1 до -14).
Модуль Graph представляет собой библиотеку подпрограмм Turbo
Pascal, обеспечивающих полное управление графическими режимами
различных мониторов - CGA, EGA, VGA, SVGA. Библиотека содержит
более 50 графических процедур и функций, как базовых (рисование
точек, линий, окружностей и т.п.), так и расширяющих возможностей
базовых (многоугольники, закрашивание фигур, вывод текста и др.).
Для запуска программ, использующих модуль Graph, должен быть
доступен драйвер egavga.bgi. Для компиляции программ должен быть
доступен модуль GRAPH.TPU.
Основные директивы модуля GRAPH
Uses GRAPH - подключение модуля GRAPH.
InitGraph(gd,gm,'c:\tp7\') - инициирование графического режима,
указываем gd-графический драйвер, gm-графическую мода и полный
путь файла поддержки графики egavga.bgi: c:\tp7\.
ClearDevice - очистка экрана в графическом режиме.
SetColor(14) - установка цвета рисуемых линий.
SetBkColor(1) - установка цвета фона.
SetLineStyle(0,0,3) - установка толщины линий.
SetFillStyle(5,11) - установка стиля и цвета закраски. Число сти-
лей закраски = 0-11.
PutPixel(300,250,15) - рисование точки (X, Y, C), где X, Y -коор-
динаты точки, C - цвет точки. С=0-15.
Line(25,100,100,200) - рисование отрезка прямой линии
(X1,Y1,X2,Y2), где X1,Y1-координаты начала отрезка; X2,Y2-коор-
динаты конца отрезка прямой линии.
Rectangle(25,100,100,200) - рисование прямоугольной рамки
(X1,Y1,X2,Y2), где X1,Y1 и X2,Y2 - координаты соответственно
начала и конца диагонали левого верхнего угла.
Bar(20,70,210,50) - рисование закрашеннго прямоугольника
(X1,Y1,X2,Y2), где X1,Y1 и X2,Y2 - координаты соответственно
начала и конца диагонали левого верхнего угла.
Circle(300,250,80) - рисование окружности (X, Y, R), где X, Y -
координаты центра окружности, R - радиус окружности.
Arc(300,250,135,45,60) - рисование дуги окружности (X,Y,Ф1,Ф2,R),
где Ф1,Ф2 - начальный и конечный углы дуги. X,Y,R - см. выше.
PieSlice(100,100,30,120,70) - рисование сектора окружности
(X,Y,Ф1,Ф2,R).
Ellipse(300,250,0,360,95,40)-рисование эллипса (X,Y,Ф1,Ф2,R1,R2).
Ф1,Ф2 - начальный и конечный углы. R1, R2 - радиусы эллипса.
Sector(400,100,90,290,200,80)- рисование сектора эллипса
(X,Y,Ф1,Ф2,R1,R2).
FillEllipse(X,Y,R1,R2) - рисование закрашенного эллипса
(или окружности при R1=R2).
OutTextXY(25,30,'Текст.') - вывод текста (X, Y, 'Текст').
CloseGraph - закрытие графического режима.
Ниже приведены примеры программ, использующих модуль Graph и
Graph0 (модуль Graph0 - графика для начинающих, упрощенный модуль
Graph). Из комментариев к ним можно узнать о конкретном использо-
вании основных директив модуля Graph при создании простейших гра-
фических изображений.
Пример 1.
Program Ris1;
uses Crt,Graph;
var gd,gm:integer; {gd-графический драйвер, gm-графическая мода}
begin
gd:=detect; {Автоматически определяем графический драйвер}
InitGraph(gd,gm,'c:\tp7\'); {Инициируем графический режим, указы-
ваем полный путь файла egavga.bgi}
SetLineStyle(0,0,3); {Задаем толщину линии}
SetColor(LightMagenta); {Задаем цвет линии}
SetFillStyle(1,LightGreen); {Задаем стиль и цвет закраски}
PieSlice(100,100,30,120,70); {Рисуем сектор окружности, X,Y,Ф1,Ф2,R}
SetColor(White); {Задаем цвет линии}
SetFillStyle(5,11); {Задаем стиль и цвет закраски}
Sector(400,100,90,290,200,80); {Рисуем сектор эллипса, X,Y,Ф1,Ф2,R1,R2}
Readkey; {Обеспечиваем задержку изображения и выход из программы при
нажатии любой клавиши, например Esc, Enter, Пробела}
CloseGraph {Закрываем графический режим}
end.
Пример 2.
Program Grafika;
uses Crt,Graph,Graph0; {Подключаем модули CRT, GRAPH, GRAPH0}
begin
Init('c:\tp7\'); {Указываем полный путь файла egavga.bgi}
SetColor(14); {Задаем цвет рисуемых линий}
SetLineStyle(1,0,ThickWidth); {Задаем тройную толщину линии}
SetBkColor(1); {Задаем цвет фона}
Circle(300,250,120); {Рисуем окружность, X, Y, R}
SetColor(11);
Circle(300,250,100);
SetColor(13);
Circle(300,250,80);
SetColor(10);
Arc(300,250,135,45,60); {Рисуем дугу, X, Y, Ф1, Ф2, R}
SetColor(12);
Ellipse(300,250,0,360,95,40); {Рисуем эллипс, X, Y, Ф1, Ф2, R1, R2}
PutPixel(300,250,15); {Рисуем точку, X, Y, C}
SetColor(15);
OutTextXY(25,30,'Графика в Turbo Pascal.'); {Вывод текста, X, Y, 'Текст'}
SetColor(11);
OutTextXY(160,450,'Для выхода из программы нажмите Esc.');
SetFillStyle(1,14); {Задаем вид закраски (0-11) и цвет закраски С}
Bar(20,70,210,50); {Рисуем закрашенный прямоугольник, X1,Y1,X2,Y2}
SetColor(11);
Rectangle(25,100,100,200); {Рисуем прямоугольную рамку, X1,Y1,X2,Y2}
SetColor(14);
Line(25,100,100,200); {Рисуем прямую линию, X1,Y1,X2,Y2}
Readkey;
CloseGraph;
end.
Здесь X, Y, X1, Y1, X2, Y2 - координаты основных точек на экране;
Ф1, Ф2 - углы дуг, круговых и эллиптических секторов;
R, R1, R2 - радиусы окружностей, эллипсов, дуг и секторов.
С - цвет линий (0-15).
Пример 3. Флаг России.
program Flag_RUS;
uses CRT,Graph,Graph0;
begin
Init('c:\tp7\');
SetFillStyle(1,15);
Bar(0,0,320,50);
SetFillStyle(1,1);
Bar(0,51,320,101);
SetFillStyle(1,4);
Bar(0,102,320,152);
ReadKey;
CloseGraph;
end.
Примеры программ построения графиков функций:
1. Построение графика параболы в декартовых координатах (путь
S(t)=gt2/2 при свободном падении тела). Построение производится
по точкам.
Program Put3;
uses Crt,Graph,Graph0;
var t1,S,H,n:integer;Y,g,dt,t:real;
begin
Init('c:\tp7\');
SetColor(14);
OutTextXY(25,30,'Путь S(t)=gt2/2 при свободном падении.');
OutTextXY(25,50,'Выход - любая клавиша.');
SetColor(10);
Line(0,470,550,470);
Line(0,0,0,470);
g:=9.81;
t:=0;
n:=100;
repeat
Y:=g*t*t/2;
dt:=1/(n+1);
t:=t+dt;
t1:=round(6*t);
S:=round(Y);
H:=round(470-S/70);
PutPixel(t1,H,11);
until t>80;
Readkey;
CloseGraph;
end.
2. Построение графика функции (улитки Паскаля) в полярных коорди-
натах. Если в прямоугольных (декартовых) кординатах задают точку
A на плоскости по её координатам x, y, то в полярных координатах
точку задают по её радиус-вектору R и углу fi между вектором R и
осью X (смотрите чертёж на рисунке). Функция в декартовых коорди-
натах имеет вид y=f(x), в полярных координатах R=F(fi). Связь
между декартовыми и полярными координатами: x=R*cos(fi),
y=R*sin(fi), R=SQRT(x*x+y*y).
Program Ulitka;
uses crt, graph, graph0;
const xc=320; yc=175; k=0.775;
var fi,dfi,R,a:real; x1,y1,x2,y2,n:integer;
Function F(fi:real):real;
begin F:=a/2+a*cos(fi);
end;
begin
clrscr;
writeln('Улитка Паскаля: R=1+a*cos(fi).');
write('Введите коэффициент a=0.5-2; a=');
read(a);
a:=100*a;
write('Введите число точек n>=100; n=');
read(n);
init('C:\TP7\');
cleardevice;
outtextxy(10,10,'Улитка Паскаля: R=1+a*cos(fi).');
setcolor(10);
line(xc,0,xc,349);
line(0,yc,639,yc);
dfi:=2*pi/n;
x1:=xc; y1:=yc; fi:=0;
while fi<2*pi+dfi do
begin
R:=F(fi);
x2:=xc+round(R*cos(fi));
y2:=yc+round(k*R*sin(fi));
setcolor(11);
line(x1,y1,x2,y2);
x1:=x2; y1:=y2; fi:=fi+dfi;
end;
outtextxy(10,30,'Выход - любая клавиша.');
readkey;
closegraph;
end.
Здесь построение графика функции производится с помощью отрезков
прямых линий, которые при большом их числе превращаются в кривую
линию. В программе для построения графика функции используется
процедура Function, что позволяет строить графики других функций,
не меняя программы (универсальный алгоритм), а заменив только вид
самой функции R=F(fi). Например, если подставить R=a*(1-cos(fi)),
то мы получим кардиоиду. Аналогично можно построить график спира-
ли Архимеда R=a*fi и т.д.
Вывод простейших фигур
http://www.realcoding.net/articles/vyvod-prosteishikh-figur.html
Какие бы изображения не выводились на экран, все они построены из точек, теоретически можно создать любое изображение путем построения точек определенного цвета в нужном месте экрана.Вывод точкиВ библиотеке Graph вывод точки осуществляется процедурой PutPixel(x, y: integer, color: word); - где x, y: координаты расположения точки, color – цвет.
Возможные значения Color приведены в таблице:Цветовая шкала
Цвет Код Цвет Код 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);
Вывод простейших фигур
Какие бы изображения не выводились на экран, все они построены из точек, теоретически можно создать любое изображение путем построения точек определенного цвета в нужном месте экрана.
Вывод точки
В библиотеке Graph вывод точки осуществляется процедурой PutPixel(x, y: integer, color: word); - где x, y: координаты расположения точки, color – цвет.
Возможные значения Color приведены в таблице:
Цветовая шкала
Цвет
Код
Цвет
Код
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);
или
S… Продолжение »
Какие бы изображения не выводились на экран, все они построены из точек, теоретически можно создать любое изображение путем построения точек определенного цвета в нужном месте экрана.Вывод точкиВ библиотеке Graph вывод точки осуществляется процедурой PutPixel(x, y: integer, color: word); - где x, y: координаты расположения точки, color – цвет.
Возможные значения Color приведены в таблице:Цветовая шкала
| Цвет | Код | Цвет | Код |
|---|---|---|---|
| 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);
| |
Вывод простейших фигур
Какие бы изображения не выводились на экран, все они построены из точек, теоретически можно создать любое изображение путем построения точек определенного цвета в нужном месте экрана.
Вывод точки
В библиотеке Graph вывод точки осуществляется процедурой PutPixel(x, y: integer, color: word); - где x, y: координаты расположения точки, color – цвет.
Возможные значения Color приведены в таблице:
Цветовая шкала
Цвет | Код | Цвет | Код |
|---|---|---|---|
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 |

