Графические возможности Pascal. Любое изображение на экране монитора формируется из отдельных элементов – пикселов (от англ. Pixel - Picture Element –

Презентация:



Advertisements
Похожие презентации
Графический режим Инициализация графического режима. Построение точки, линии.
Advertisements

1 Графика в Pascal Модуль Graph. 2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля Graph. Первой инструкцией.
Графика в Turbo Pascal ГБОУ СПО «КСТ», г. Калуга преподаватель Шамрина Ольга Николаевна.
Линейный алгоритм в графических задачах. Вся поверхность монитора в графическом режиме представляется совокупностью прямоугольников, которые называются.
Экран в графическом режиме представляет собой прямоугольник, заполненный точками – пикселями. X Y y x (0,0) Для построения изображения используется система.
Построение изображений по линиям.. Очистка экрана ClearDevice – очистка экрана в графическом режиме. С момента начала ее выполнения все установки по цвету,
Задание графического режима Линия Прямоугольник Окружность Эллипс Дуга выход Тест 2Тест 1 содержание.
Константы цвета Black = 0; {Черный} Blue = 1; {Синий} Green = 2; {Зеленый} Cyan = 3; {Голубой} Red = 4; {Красный} Magenta = 5; {Фиолетовый} Brown = 6;
Графика в Паскале Учитель информатики и ИКТ СОШ 60 Грязнова А. В.
Графика на языке программирования Turbo Pascal. Модули: GRAPH и CRT.
Электронный справочник по процедурам и функциям модуля Graph языка программирования Turbo Pascal автор: Алиева Ирина Викторовна Учитель информатики и ИКТ.
Операторы графики. Содержание Открытие и закрытие графического режимаОткрытие и закрытие графического режима Графические операторы Обобщение (основные.
ГРАФИЧЕСКИЙ РЕЖИМ Turbo Pascal 7.0. Графические операции Система координат Инициализация Изображение точек Изображение линий Закрашенные фигуры Вывод.
Построение фигур Дуга, окружность, прямоугольник, эллипс.
На алгоритмическом языке Турбо - Паскаль тема: «Графический режим монитора» Методические разработки учителя информатики лицей 1581 Лапшиной О.М г.
Урок 1 Знакомство с графическим модулем и процедурами, устанавливающими текущий цвет рисунка, тип закраски и ее цвет, рисующими прямоугольник и трехмерный.
Урок 1 Знакомство с графическим модулем и процедурами, устанавливающими текущий цвет рисунка, тип закраски и ее цвет, рисующими прямоугольник и трехмерный.
Необходимость в использовании модулей, или, другими словами, в модульном программировании, возникла в первую очередь из-за трудностей, связанных с огромными.
Графический режим. Растровая и векторная графика. Инициализация графики.
«Графические возможности языка программирования Паскаль»
Транксрипт:

Графические возможности Pascal

Любое изображение на экране монитора формируется из отдельных элементов – пикселов (от англ. Pixel - Picture Element – элемент изображения). Для получения того или иного изображения на экране монитора как в графическом, так и в текстовом режимах необходимо заставить светиться строго определенную группу пикселов. В текстовом режиме на экран могут выводиться только определенные символы, образы которых хранятся в постоянной или оперативной памяти компьютера, а управление отдельными пикселами невозможно. В графическом режиме появляется возможность управления отдельными пикселами, что позволяет формировать любые изображения.

С технической точки зрения управлением монитора занимается специальное устройство компьютера – видеоадаптер. видеоадаптер – это весьма сложное электронное устройство, управляемое собственным микропроцессором. В самом общем виде видеоадаптер состоит из контроллера электронно-лучевой трубки (CRT-контроллера) и видеопамяти (видеобуфера).

Чтобы сделать процесс создания графических изображений более простым и эффективным фирма Borland International разработала специальную библиотеку GRAPH, а также набор графических драйверов, позволяющих работать с различными типами видеоадаптеров.GRAPH Графический драйвер – это вспомогательная программа-посредник, обеспечивающая взаимодействие пользовательских программ с конкретным графическим устройством. Графические драйверы хранятся в файлах с расширением.BGI (Borland Graphic Interface). Обычно эти файлы расположены в каталоге \BP\BGI (или \TP\BGI).

Инициализация графического режима Любая программа, использующая графику должна прежде всего подключить модуль Graph. Это выполняется директивой USES: USES Graph; Прежде чем работать с графикой необходимо установить определенный графический видеорежим. Выбор видеорежима зависит от имеющегося графического адаптера. Большинство современных компьютеров (IBM- совместимых) имеют в своем составе видеоадаптер стандарта VGA (Video Graphic Array) или SuperVGA. Для работы с таким адаптером используется графический драйвер EGAVGA.BGI.

При этом имеется возможность работы в трех различных видеорежимах: РежимРазрешение VGALo = 0640х200 VGAMed = 1640х350 VGAHi = 2640х480 Во всех трех видеорежимах возможно одновременное отображение до 16 различных цветов.

процедуры инициализации графики – InitGraph InitGraph( var GraphDriver, GraphMode : Integer; DriverPath : String ); В модуле Graph для задания типа видеоадаптера определен ряд констант: Detect = 0 – автоопределение; CGA = 1 – адаптер CGA; EGA = 3 – адаптер EGA; VGA = 9 – адаптер VGA;

Pascal USES Graph; VAR GrDr, GrMd : integer; BEGIN GrDr := detect; InitGraph( GrDr, GrMd, c:\bp\bgi ); { теперь можно вызывать графические процедуры } CloseGraph; END.

Система координат

Чтобы узнать максимальные координаты экрана в текущем режиме работы, воспользуемся стандартными функциями GetMaxX и GetMaxY. Для этого наберите небольшую программу: Uses Graph; Var GraphDriver, GraphMode: integer; Begin GraphDriver:=detect; InitGraph(GraphDriver, GraphMode, ); Writeln(GetMaxX, 'x', GetMaxY); Readln; CloseGraph; End.

Чтобы точно строить изображение на экране, Вам нужно сначала нарисовать, как это должно выглядеть на бумаге. Для этого начертите в тетради систему координат графического режима.

Чтобы переместить курсор в нужное место используют следующие процедуры: MoveTo (X, Y), где переменные X, Y типа Integer - перемещает текущий указатель в точку с координатами (X,Y). Например, MoveTo (200, 100) MoveRel (dX, dY), где переменные dX, dY типа Integer - перемещает текущий указатель по горизонтали на расстояние, равное dX пикселям, а по вертикали на расстояние, равное dY пикселям. (Relation (англ.) - относительно) Например, если после выполнения предыдущей процедуры текущий указатель находится в точке (200, 100), то после выполнения процедуры MoveRel (25, 150) он будет находится в точке с координатами (225, 250). PutPixel(X, Y, Color), где переменные X, Y типа Integer, а Color типа Word - процедура выводит точку заданного цвета Color в точку с координатами (X, Y).

Задание Наберите в теле программы следующие процедуры PutPixel(300, 150, Red), PutPixel(45, 420, 9) и просмотрите их действие.

Графика

Line (X1, Y1, X2, Y2), где переменные X1, Y1, X2, Y2 типа Integer - рисуется линия от точки (X1, Y1) до точки (X2, Y2). LineTo (X, Y), где переменные X, Y типа Integer - рисуется линия из точки, где находится в данный момент курсор в точку (X, Y). LineRel (dX,dY), где переменные dX, dY типа Integer - рисуется линия из точки, где находится в данный момент курсор (X, Y) в точку (X+dX,Y+dY).

Цвет Код Цвет Код Black черный 0 DarkGray темно- серый 8 Blue синий 1 LightBlue ярко- голубой 9 Green зеленый 2 LightGreen ярко- зеленый 10 Cyan бирюзовый 3 LightCyan ярко- бирюзовый 11 Red красный 4 LightRed ярко- красный 12 Magenta малиновый 5 LightMagen ta ярко- малиновый 13 Brown коричневы й 6 Yellow желтый 14 LightGray светло- серый 7 White белый 15

(100; 400) (400; 200) (100; 200) (400; 400) (250; 100) (50; 200) (450; 200)

USES Graph; VAR GrDr, GrMd : integer; BEGIN GrDr := detect; InitGraph( GrDr, GrMd, ); line(100,200,400,200); line(100,200,100,400); line(400,400,100,400); line(400,400,400,200); line(50,200,250,100); line(50,200,450,200); line(250,100,450,200); CloseGraph; END.

Придумайте самостоятельно примеры с использованием всех процедур вычерчивания линий.

SetColor (Color), где переменная Color типа Word - устанавливает текущий цвет для выводимых линий и символов. Для установка цвета фона графического экрана имеется процедура: SetBkColor( Color )

Цвет Код Цвет Код Black черный 0 DarkGray темно- серый 8 Blue синий 1 LightBlue ярко- голубой 9 Green зеленый 2 LightGreen ярко- зеленый 10 Cyan бирюзовый 3 LightCyan ярко- бирюзовый 11 Red красный 4 LightRed ярко- красный 12 Magenta малиновый 5 LightMagen ta ярко- малиновый 13 Brown коричневы й 6 Yellow желтый 14 LightGray светло- серый 7 White белый 15

(100; 400) (400; 200) (100; 200) (400; 400) (250; 100) (50; 200) (450; 200)

USES Graph; VAR GrDr, GrMd : integer; BEGIN GrDr := detect; InitGraph( GrDr, GrMd, ); setcolor(red); line(100,200,400,200); line(100,200,100,400); line(400,400,100,400); line(400,400,400,200); Setcolor(blue) line(50,200,250,100); line(50,200,450,200); line(250,100,450,200); CloseGraph; END.

Задания: Исправьте свою программу так, чтобы процедуры рисовали линии различных цветов. В начерченной ранее системе координат изобразите на чертеже точки: А(150,450), В(100,350), С(350,350), D(300,450), E(200,350), F(200,50), L(250,40), K(200,20), M(300,250), X(175,400), Y(225,400), Z(275,400). Соедините точки, получая отрезки: AB, BC, CD, AD, EK, KL, LF, FM, ME. Какая фигура у Вас получилась? Напишите программу, рисующую эту фигуру, по вашему рисунку.

Графика

Построение прямоугольников Для построения прямоугольных фигур имеется несколько процедур. Первая из них – процедура вычерчивания одномерного прямоугольника: Rectangle( X1, Y1, X2, Y2 ), где X1, Y1 – координаты верхнего левого угла, X2, Y2 – координаты правого нижнего угла прямоугольника.

(100; 400) (400; 200) (100; 200) (400; 400) (250; 100) (50; 200) (450; 200)

USES Graph; VAR GrDr, GrMd : integer; BEGIN GrDr := detect; InitGraph( GrDr, GrMd, ); setcolor(red); line(100,200,400,200); line(100,200,100,400); line(400,400,100,400); line(400,400,400,200); Setcolor(blue) line(50,200,250,100); line(50,200,450,200); line(250,100,450,200); CloseGraph; END. USES Graph; VAR GrDr, GrMd : integer; BEGIN GrDr := detect; InitGraph( GrDr, GrMd, ); setcolor(red); rectangle(100,200,400,400); Setcolor(blue) line(50,200,250,100); line(50,200,450,200); line(250,100,450,200); CloseGraph; END.

закрашенные прямоугольники Bar( X1, Y1, X2, Y2 ), где параметры X1, Y2, X2 и Y2 имеют то же смысл, что и в процедуре Rectangle. Цвет и стиль закраски устанавливается процедурой SetFillStyle( Pattern, Color ), где параметр Pattern определяет стиль (шаблон) заливки, а параметр Color – ее цвет. Возможные значения параметра Pattern приведены в таблице

(100; 400) (400; 200) (100; 200) (400; 400) (250; 100) (50; 200) (450; 200)

Описание стиляКонстантаОписание стиляКонстанта Заполнение цветом фона (SetBkColor) EmtyFill = 0 Вертикально- горизонтальная штриховка HatchFill = 7 Заполнение текущим цветом (SetColor) SolidFill = 1 Разреженная штриховка крест-накрест XhatchFill = 8 Заполнение символами - - LineFill = 2 Частая штриховка крест-накрест InterLeaveFill = 9 Заполнение символами // нормальной толщины LtslashFill = 3 Заполнение разреженными точками WideDotFill = 10 Заполнение символами // удвоенной толщины SlashFill = 4 Заполнение частыми точками CloseDotFill = 11 Заполнение символами \\ нормальной толщины BkSlashFill = 5 Пользовательский стиль UserFill = 12 Заполнение символами \\ удвоенной толщины LtBkSlashFill = 6

USES Graph; VAR GrDr, GrMd : integer; BEGIN GrDr := detect; InitGraph( GrDr, GrMd, ); SetFillStyle ( LtslashFill,blue); bar(100,200,400,400); Setcolor(blue) line(50,200,250,100); line(50,200,450,200); line(250,100,450,200); CloseGraph; END.

Для построения объемных закрашенных прямоугольников используется процедура: Bar3D( X1, Y1, X2, Y2, Depth, Top ). Тип и цвет заливки устанавливается процедурой SetFillStyle. Параметр Depth определяет глубину трехмерного контура. Чаще всего его значение равно четверти ширины прямоугольника: Depth := (X2-X1) div 4; Параметр Top определяет, строить над прямоугольником вершину (True) или нет (False). Например: SetFillStyle( XhatchFill, Red ); Bar3D( 10, 10, 50, 100, 10, True );

Процедура вычерчивания окружностей текущим цветом имеет вид: Circle( X, Y, Radius ), где X, Y – координаты центра окружности, а Radius – ее радиус. Например, следующий фрагмент выводит ярко-зеленую окружность c радиусом 50 пикселов и центром в точке 450, 100: SetColor( LightGreen ); Circle( 450, 100, 50 );

вычерчивание дуг Arc( X, Y, StartAngle, EndAngle, Radius ), где X, Y – координаты центра дуги, StartAngle и EndAngle – начальный и конечный угол (в градусах), Radius – радиус. Очевидно, что если StartAngle = 0, а EndAngle = 359, то вычерчивается полная окружность.

Заполнение замкнутых областей FloodFill( X, Y, Border ), где X, Y – координаты точки внутри или вне фигуры, Border – цвет контура фигуры. Если точка (X, Y) находится внутри замкнутой области, то заполняется внутренняя область. Если эта точка находится вне замкнутой области, то заполняется ее внешняя часть. Пример: Красная окружность заполненная зеленой штриховкой SetColor( Red ); Circle( 450, 100, 50 ); SetFillStyle( SlashFill, Green ); FloodFill( 450, 100, Red );

Установка стиля линии SetLineStyle( Style, Pattern, Thickness ), где Style – параметр, определяющий стиль линии. Возможные значения этого параметра приведены в таблице; Pattern – образец; Thickness – толщина линии. Если применяется один из стандартных стилей, значение параметра Pattern должно быть равно 0.

Описание стиляКонстанта Сплошная линияSolidLn = 0 Точечная линияDottedLn = 1 Штрих-пунктирная линияCenterLn = 2 Пунктирная линияDashedLn = 3 Стиль, определяемый пользователем UserBitLn = 4 NormWidth = 1 – линия толщиной в один пиксел ThickWidth = 3 – линия толщиной в три пиксела