Turbo Pascal 7. 0 Изображение в Турбо
Turbo Pascal 7. 0
Изображение в Турбо Паскале строится из точек, которые называются пикселами. Пиксель - это минимальная единица управления цветом. Видеоадаптер (графический адаптер, видеокарта, видеоплата) - устройство, обеспечивающее взаимодействие процессора с монитором и реализующий тот или иной режим разрешимости и цветности. Адаптер называют по имени монитора.
(639, 0) (0, 0) x Пиксель Экран (0, 479) y
В Turbo Pascal предназначен стандартный библиотечный модуль GRAPH. Подключение этого модуля к пользовательской программе осуществляется директивой Uses graph. С момента подключения модуля GRAPH становятся доступны все графические средства. В первую очередь вызывается процедура: init. Graph (var Graph. Driver : integer; var Mode : integer; Path : string)
Init. Graph (gd, gm, p) Графический драйвер Путь к драйверу Режим (разрешение) gm=0 - низкое (640 x 200) y ‘c: transbpbgi’ gm=1 - среднее (640 x 350) gm=2 - высокое (640 x 480)
CIose. Graph
uses Graph; var Divice, Mode: Integer; BEGIN Divice: =VGA; { Графический адаптер - VGA } Mode: =VGAHi; { Графический режим VGAHi (640 x 480) } Init. Graph (Divice, Mode, ‘Z: TP'); { Включить графический режим }. . . Read. Ln; Close. Graph; END. Последняя процедура Close. Graph закрывает графический режим экрана и восстанавливает текстовый.
К стандартным средствам Паскаля относятся: 1) CIRCLE (круг). 2) LINE (линия). 3) ARC (дуга окружности). 4) Ellipse (дуга эллипса). 5) RECTANGLE (контур прямоугольника). 6) BAR (закрашенный прямоугольник). 7) FILLELLIPSE (закрашенный эллипс). 8) BAR 3 D (параллелепипед). 9) PIESLICE (закрашенный сектор круга). 10) FLOODFILL (закраска произвольной фигуры). 11) Галерея изображений
Отрезок прямой линии Uses graph; Line (x 1, y 1, x 2, y 2) Var gd, gm: integer; Begin gd: =detect; Init. Graph(gd, gm, ' '); Line(0, round(Get. Max. Y/2), Get. Max. X, Round(Get. Max. Y/2)); {горизонтальная Y -К линия} оо Line(round(Get. Max. X/2), 0, рд ин Round(Get. Max. X/2), Get. Max. Y); аты {вертикальная линия} ко нцо Readln; вл Close. Graph; ин End. ии Запуск программы Назад
Контур прямоугольника Rectangle(x 1, y 1, x 2, y 2) X, Y- Координаты точек Назад
Закрашенный прямоугольник Bar (x 1, y 1, x 2, y 2) uses Graph; var Gr. Driver, Gr. Mode : Integer; begin Gr. Driver : =Detect; Init. Graph(Gr. Driver, Gr. Mode, ''); begin setfillstyle(1, 3); bar(200, 100, 250, 300); end; readln; Close. Graph; end. X, Y- координаты Запуск программы точек Назад
Окружность Circle (x, y, r) Program okr; Запуск программы uses graph, crt; var gd, gm: integer; x, y, r: integer; i: integer; begin gd: =detect; r Init. Graph(gd, gm, ' '); randomize; for i: =0 to 10 do begin x: =random(640); y: =random(480); r: =random(200); setcolor(random(16)); X, Y- координаты центра circle(x, y, r); окружности end; R- радиус readln; closegraph end. Назад
Дуга окружности nu Arc (x, y, nu, ku, r) ku R- радиус Ku- угол наклона r Nu- координаты конечной точки Назад
Дуга эллипса uses graph, crt; var a, b, e: integer; begin a: =detect; initgraph(a, b, ''); Ellipse e: =graphresult; if e<>grok then writeln(grapherrormsg(e)) else begin repeat setlinestyle(2, 5, 2*2+5); setcolor(random(3)); ellipse(300, 250, 128, 52, random(300), random (100)); setcolor(random(8)); ellipse(300, 250, 0, 360, random(200), 200); until keypressed; closegraph; end. Запуск программы Назад
Параллелепипед uses Graph; Bar 3 d(x 1, y 1, x 2, y 2, d, t) var Gr. Driver, Gr. Mode : Integer; begin Gr. Driver : =Detect; Init. Graph(Gr. Driver, Gr. Mode, ''); begin setfillstyle(1, 3); bar 3 d(100, 400, 70, true); end; readln; Close. Graph; end. Верхняя грань Запуск программы True (Top. On) - есть False (Top. Off) - нет Назад
Закрашенный эллипс program pr 11; Fill. Ellipse (x, y, Rx, Ry) uses Graph; var Gr. Driver, Gr. Mode : Integer; begin Gr. Driver : =Detect; Ry Init. Graph(Gr. Driver, Gr. Mode, ''); begin setcolor(9); Rx setfillstyle(hatchfill, green); setcolor(12); fillellipse(300, 150, 60, 100); end; readln; Пример «Закрашенный Close. Graph; сектор эллипса» end. Назад Запуск программы
Пример программы: SECTOR Program Ris 1; uses Crt, Graph; var gd, gm: integer; {gd-графический драйвер, gm-графическая мода} begin gd: =detect; {Автоматически определяем графический драйвер} Init. Graph(gd, gm, 'c: tp 7'); {Инициируем графический режим, указы- ваем полный путь файла egavga. bgi} Set. Line. Style(0, 0, 3); {Задаем толщину линии} Set. Color(Light. Magenta); {Задаем цвет линии} Set. Fill. Style(1, Light. Green); {Задаем стиль и цвет закраски} Pie. Slice(100, 30, 120, 70); {Рисуем сектор окружности, X, Y, Ф 1, Ф 2, R} Set. Color(White); {Задаем цвет линии} Set. Fill. Style(5, 11); {Задаем стиль и цвет закраски} Sector(400, 100, 90, 200, 80); {Рисуем сектор эллипса, X, Y, Ф 1, Ф 2, R 1, R 2} Readkey; {Обеспечиваем задержку изображения и выход из программы при нажатии любой клавиши, например Esc, Enter, Пробела} Close. Graph {Закрываем графический режим} end. Запуск программы Назад
F l o o d F i l l (x, y, b) Координаты внутренней точки Цвет границы Назад
Set. Line. Style(s, p, t) Стиль Шаблон 0 Толщина 1 2 1 Тонкая 3 3 Толстая 4 Определяется шаблоном
Set. Color(c) Цвет текста 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Put. Pixel (x, y, c); Координаты Цвет x y
Нарисовать точку зеленого цвета в центре экрана Program Primer; uses Graph; var Divice, Mode: Integer; BEGIN Divice: =VGA; Mode: =VGAHi; Init. Graph (Divice, Mode, ‘Z: TP'); Put. Pixel(320, 240, 2); Readln; Close. Graph; End.
Line. To (x, y) Текущий указатель Текущий указатель после до исполнения команды
Перемещение текущего указателя в точку с координатами (x, y) Move. To (x, y)
Line. Rel (dx, dy) Текущий указатель Текущий после указатель до исполнения команды
Set. Fill. Style (s, c) Стиль Активный цвет 0 … 12 0 … 15
0 - сплошная закраска фоновым цветом 1 - сплошная закраска активным цветом 9 - закраска пикселей в шахматном порядке 12 - пользовательский стиль 2 3 4 5 6 7 8 10 11
Назад
program ZWEZDA; begin uses crt, graph; gd: =Detect; Init. Graph(gd, gm, ''); const p=5; r: =180; r 2: =60; var gd, gm, i: integer; t: =200; setcolor(green); r, r 2, al, a 2, a 3, t: real; for i: =0 to p-1 do procedure begin Ugol(x 1, y 1, x 2, y 2, x 3, y 3: real; n: integer); al: =2*pi*i/p; var k: integer; a 2: =al+pi/p; a, hx 1, hx 2, hy 1, hy 2: real; a 3: =al-pi/p; begin Ugol(t, t, t+r*sin(al), t+r*cos(al), t+r 2*sin(a 2 hx 1: =(x 2 -x 1)/n; hx 2: =(x 3 -x 2)/n; ), t+r 2*cos(a 2), 25); hy 1: =(y 2 -y 1)/n; hy 2: =(y 3 -y 2)/n; Ugol(t, t, t+r*sin(al), t+r*cos(al), t+r 2*sin(a 3 for k: =0 to n do ), t+r 2*cos(a 3), 25); line(round(x 1+k*hx 1), round(y 1+k*hy 1), r end; ound(x 2+k*hx 2), round(y 2+k*hy 2)); repeat until keypressed; end; Close. Graph; end.
program Flag_RUS; uses Crt, Graph; {Подключаем модули CRT, GRAPH 0} var gd, gm: integer; {gd-графический драйвер, gm-графическая мода} begin gd: =detect; {Автоматически определяем графический драйвер} Init. Graph(gd, gm, 'c: tp 7'); {Инициируем графический режим, указы- ваем полный путь файла egavga. bgi} Set. Fill. Style(1, 15); Bar(0, 0, 320, 50); Set. Fill. Style(1, 1); Bar(0, 51, 320, 101); Set. Fill. Style(1, 4); Bar(0, 102, 320, 152); Read. Key; Close. Graph; end.
Program luna_zvnebo; Uses Graph, Crt; Var i, k, gd, gm: integer; Begin Gd: =detect; Init. Graph(gd, gm, ' '); Randomize; For i: =1 to 100 do Begin Putpixel(random(640), random(480), random(15)+1); Delay(10); end; Set. Color(14); Circle(300, 100, 30); Floodfill(310, 110, yellow); Repeat until keypressed; Closegraph; End.
Автор презентации: Группа:
Графический режим.ppt
- Количество слайдов: 32

