Graphabc — Где научиться программированию на Pascal в модуле graphABC


Содержание

Graphabc — Где научиться программированию на Pascal в модуле graphABC?

Язык:
Русский
English

В модуле Graph (GRAPH.TPU) находится библиотека, состоящая из более чем 50 графических подпрограмм от побитовых до подпрограмм высокого уровня.

Инициализация графики происходит вызовом InitGraph . Разрешение экрана обычно 640×480, количество цветов — 16. Стандартную палитру из 16 цветов можно посмотреть здесь . В режимах с 256 цветами первые 16 цветов обычно те же самые. Более высокие разрешения и количество цветов (например, 800×600, 256 цветов) можно получить, используя SVGA BGI драйверы. В School Pak для этого есть модуль ScpGraph . Он содержит процедуру InitScpGraph вместо InitGraph , а также некоторые вспомогательные функции для режимов High Color и True Color.

Большинство графических примитивов либо , либо . Когда графика инициализирована, в любой момент существуют текущий цвет линии и текущий цвет закраски, которые могут быть разными и меняются отдельно. Сразу после InitGraph обычно и линия, и закраска белые (цвет с максимальным номером в палитре). Цвет линии меняется вызовом SetColor , цвет закраски меняется вызовом SetFillStyle . Линия и закраска могут быть не сплошными, а по шаблону, который меняется SetLineStyle и SetFillStyle , соответственно. При помощи SetLineStyle можно ещё сделать линию толще в 3 раза.

Самые популярные графические процедуры:

  • Line (линия), Rectangle (прямоугольник), Circle (окружность) —
  • Bar (закрашенный прямоугольник), FillEllipse (круг или закрашенный эллипс), FloodFill (заливка всего, что вокруг одной точки) —
  • PutPixel и GetPixel — запись и чтение по пикселам
  • OutTextXY — пишет текст либо пикселами, либо . DefaultFont — растровый шрифт, рисуется пикселами, все остальные шрифты векторные, . Цвет задаётся SetColor

Кроме этого, некоторые процедуры имеют версии, работающие относительно текущей позиции. Текущая позиция меняется MoveTo , и относительно неё, например, работают LineTo и OutText .

Если нужно, чтобы изображение не пропадало до нажатия любой клавиши, можно использовать ReadKey или ReadLn . После завершения работы с графикой желательно вызывать CloseGraph .

Подробности

Компилирование

Для компилирования программы, использующей модуль Graph, нужно указать путь к файлу GRAPH.TPU (в строке ввода Options|Directories|Unit Directories) и иметь доступ к стандартным модулям в файле TURBO.TPL

Выполнение

Для запуска программы, использующей модуль Graph, вам будет нужен один (или несколько) графических драйверов (BGI файлов). Если ваша программа использует векторные шрифты, то в дополнение к драйверам, вам будут нужны ещё и файлы шрифтов (CHR).

Известные проблемы

Скачать

См. также

ScpGraph — для работы с нестандартными режимам, в том числе SVGA

Графика, графика, графика! Часть 1. Введение.

Важна ли графика для начинающих программистов? Или следует в первую очередь изучать конструкции языка, алгоритмы, методику написания программ? А графика — баловство?

Несомненно, все зависит от аудитории. Если программированию обучается школьник, то графика очень важна — мышление конкретное, и хочется сразу видеть результаты своего труда. Абстрактное мышление быстро утомляет. Если программировать учится студент — здесь другая картина. Графика нужна по большей мере как вспомогательное средство для визуализации результатов, динамики выполнения алгоритмов. Но что однозначно — графика нужна.

Меня вот часто спрашивают студенты — как сделать что-нибудь графическое на C++? Много лет уже спрашивают. Уже устал отвечать — не знаю.

Конечно, не каждый язык должен иметь стандартную поддержку графики. Даже универсальный. Но вот от языка для обучения (а язык Паскаль используется в основном для обучения) поддержку графики — ждут.

В старом добром Бейсике — чем он подкупал — на Корветах там всяких, Атари и Синклерах — загрузил среду, написал

На старом добром Turbo Pascal был такой замечательный модуль Graph — подключил его, написал пару строчек непонятных заклинаний — и рисуй себе все что угодно аж 256 цветами! Вот эти заклинания:

Еще в конце там CloseGraph надо было вызвать. И знатоки с умным видом рассказывали новичкам, что у тебя там неправильно установлен путь к графическому драйверу или драйвер у тебя не тот.

Вообщем, прошли те времена — появилась Windows, а в ней основной режим — графический.

Прошли ли? Меня до сих пор спрашивают, почему в PascalABC нет модуля Graph? Отвечаю, что не мог больше терпеть. Но нет-нет да мелькнет в Интернете на форуме пост какого-нибудь новичка — представляете, настолько плохой PascalABC, что даже графики в нем нет или она там какая-то своя! Не та, что описана в груде книжек по Турбо-Паскалю, а другая!

Вот об этой другой графике мы и поговорим.

Те, кто программировал графические приложения под Windows, знают, что рисовать лучше всего в обработчике события WM_PAINT или OnPaint (последнее — если используется какой-нибудь объектный каркас для Windows-приложения). В этом обработчике нельзя рисовать долго, поскольку программа на время его работы блокируется. А если рисовать в других обработчиках, то нарисованное стирается при следующей перерисовке окна. Короче — куча проблем!

Идея была простой: создать графическую библиотеку, подключающуюся крайне просто, где эти проблемы были бы решены. Еще лучше, если графическое приложение будет похоже на обычную программу: чтобы сразу после begin можно было писать графические команды.

Решение было найдено — вот эта простейшая программа:

При запуске такой программы возникает специальное графическое окно, и все рисование происходит именно на нем. Изображение на нем не пропадет при перерисовке, и можно рисовать сколь угодно долго — программа не окажется заблокированной на время рисования. Это значит, в частности, что можно легко делать простую анимацию.

Вот несколько очень простых графических программок — совершенно бесполезны — чистое баловство!

Программа 1. Показывает использование процедуры SetPixel и функции RGB.

Программа 2. Рисование звездочки. Показывает использование процедур MoveTo и LineTo, а также полярных координат.

Пример 3. Цифровые часы. Показывает использование процедуры TextOut, а также функций TextWidth, TextHeight.

Ну вот, для введения и достаточно.

А симпатичные примеры на графику строк эдак на 10-15 — пожалуйста — пишите в комментариях!

ABCPascal Модуль GraphABC. Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией. — презентация

Презентация была опубликована 6 лет назад пользователемschool39.tgl.ru

Похожие презентации

Презентация на тему: » ABCPascal Модуль GraphABC. Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией.» — Транскрипт:

1 ABCPascal Модуль GraphABC

2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией программы должна быть инструкция uses GraphABC;

3 Графический режим 639 точек 479 точек Начало отсчета – левый верхний угол экрана Любое изображение формируется из простых геометрических фигур. Это точки, отрезки, окружности и т.д. Для того чтобы запрограммировать вывод изображения, надо научиться задавать координаты графических объектов. Началом отсчета является верхний левый угол экрана. Значение Х — координаты отсчитывается слева направо, а Y – сверху вниз. Допустимый диапазон графических координат (639х479).

4 Управление экраном SetWindowW >

5 ClearWindow; — очищает графическое окно белым цветом. ClearWindow(color); — очищает графическое окно указанным цветом. Очистка графического окна program clear; uses GraphABC; begin ClearWindow; ClearWindow (clMoneyGreen); end. Цвет зеленых денег В модуле GraphABC имеется ряд предопределенных констант для обозначения стандартных цветов. Их более сотни, поэтому ниже приводится их неполный список:clYellow, clBlack, clMagenta, clSilver, clCyan, clRed, clOrange, clGreen clBrown, clLightGray


6 Графические примитивы 1.Точка 2.Линия 3.Прямоугольник 4.Окружность 5.Эллипс 6.Сектор 7.Дуга

7 Точка SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color program tochka; uses GraphABC; begin SetPixel(300,200,clred); end.

8 Линии LineTo(x,y) — рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y). x,y Program liniay; uses GraphABC; begin LineTo(300,200); end.

9 Линии Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2). Program liniay; uses GraphABC; begin line(100,50,500,250); end. x1,y1 x2,y2

10 Используемые цвета clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебряный Random( ) – случайный цвет из всей палитры цветов Паскаля

11 Цвет линии SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color. Program liniay; uses GraphABC; begin setpencolor(clred); line(30,30,400,350); end.

12 Пунктирная линия SetPenStyle( ); — устанавливает стиль пера, задаваемый номером. program prim; uses GraphABC; begin Setpencolor(clred); SetPenStyle(1); <1 - длинный штрих>Line(10,100,350,100); SetPenStyle(2); <2 - короткий штрих>Line(10,125,350,125); SetPenStyle(3); <3 - штрих-пунктир>Line(10,150,350,150); end.

13 Толщина линии SetPenW >

14 Program treugolnik; uses GraphABC; begin setpenw >

15 Прямоугольник Rectangle(x1,y1,x2,y2) — рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2). Program pryamougolnik; uses GraphABC; begin Rectangle(50,50,200,200); end. x1,y1 x2,y2

16 Заливка цветом FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y). Program pryamougolnik; uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end. x1,y1 x2,y2

17 Заливка кистью SetBrushColor(color) — устанавливает цвет кисти. Заливка кистью распространяется на замкнутый контур, описание которого следует за процедурой установки цвета кисти. Program zalivka_kist; uses GraphABC; Begin SetBrushColor(clGreen); Rectangle(50,50,300,300); end.

18 Заливка кистью SetBrushStyle(номер от 0 до 7 или название) — устанавливает стиль кисти, задаваемый номером или символической константой. Program p12_zalivka; uses GraphABC; Begin SetBrushColor(clAqua); SetBrushStyle(1); Rectangle(10,10,100,100); SetBrushColor(clRed); SetBrushStyle(2); Rectangle(110,10,200,100); SetBrushColor(clBlue); SetBrushStyle(3); Rectangle(210,10,300,100); SetBrushColor(clGreen); SetBrushStyle(4); Rectangle(10,110,100,210); SetBrushColor(clYellow); SetBrushStyle(5); Rectangle(110,110,200,210); SetBrushColor(clBlack); SetBrushStyle(6); Rectangle(210,110,300,210); end. По умолчанию задается стиль 0 – сплошная заливка цветом.

19 Заливка кистью SetBrushPicture(fname) — устанавливает в качестве образца для закраски кистью образец, хранящийся в файле fname, при этом текущий цвет кисти при закраске игнорируется. uses GraphABC; begin SetBrushPicture(‘bmp1.bmp’); Ellipse(0,0,640,400); end.

20 Program pryamougolnik; uses GraphABC; begin SetPenColor(clred); SetPenW >

21 Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r. Окружность Program circle; uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end. x1,y1 r

22 Эллипс Ellipse(x1,y1,x2,y2) — рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2). Program oval; uses GraphABC; begin Ellipse(50,50,200,350); FloodFill(50+100,50+100,clred); Ellipse(250,150,550,300); FloodFill( , ,clBlue); end. x1,y1 x2,y2 x1,y1 x2,y2

Цукерберг рекомендует:  Ecmascript 6 - Ищу программистов для общения

23 Дуга окружности Arc(x,y,r,a1,a2) — Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки). Program duga; uses GraphABC; Begin SetPenW >

24 Pie(x,y,r,a1,a2) — рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc). Сектор Program sector; uses GraphABC; begin Pie(300,200,100,0,90); FloodFill(300+10,200-10,clAqua); end.

25 Вывод текста в графическое окно TextOut(x,y,строка); — выводит строку текста в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст). Program text; uses GraphABC; begin TextOut(100,30,’Квадрат’); Rectangle(50,50,200,200); FloodFill(55,55,clBlue); end.

26 Действия со шрифтом SetFontName(name) — устанавливает наименование шрифта. SetFontColor(color) — устанавливает цвет шрифта. SetFontSize(sz) — устанавливает размер шрифта в пунктах. SetFontStyle(fs) — устанавливает стиль шрифта.

27 Название шрифта По умолчанию установлен шрифт, имеющий наименование MS Sans Serif. Наиболее распространенные шрифты – это Times, Arial и Courier New. Наименование шрифта можно набирать без учета регистра. Пример: SetFontName(Times);

28 Стиль шрифта Задается именованными константами: fsNormal – обычный; fsBold – жирный; fsItalic – наклонный; fsBoldItalic – жирный наклонный; fsUnderline – подчеркнутый; fsBoldUnderline – жирный подчеркнутый; fsItalicUnderline – наклонный подчеркнутый; fsBoldItalicUnderline – жирный наклонный подчеркнутый.

29 Program text; uses GraphABC; Begin SetFontName(Arial); SetFontSize(20); SetFontColor(clRed); TextOut(10,10,обычный’); SetFontStyle(fsItalic); SetFontColor(clBlue); TextOut(10,50,наклонный’); SetFontStyle(fsBold); SetFontColor(Random( )); TextOut(10,90,жирный’); SetFontStyle(fsUnderline); SetFontColor(Random( )); TextOut(10,130,подчеркнутый’); SetFontStyle(fsBoldItalicUnderline); SetFontColor(Random( )); TextOut(10,170,жирный, наклонный, подчеркнутый’); end. Например,

30 Используемые цвета Цвет можно задавать и с помощью функции RGB(r,g,b) где r, g и b – целые числа в диапазоне от 0 до 255. Функция возвращает целое значение, являющееся кодом цвета, который содержит красную, зеленую и синюю составляющие с интенсивностями r, g и b соответственно (0 соответствует минимальной интенсивности, 255 – максимальной). RGB(255,255,255) – соответствует белому цвету. RGB(0,0,0) – соответствует черному цвету.

31 Program color; uses GraphABC; begin Clearwindow(rgb(200,150,250)); TextOut(93,30,’ Квадрат ‘); Rectangle(50,50,200,200); FloodFill(55,55,clRed); TextOut(275,30,’ Эллипс’); Ellipse(250,50,350,200); FloodFill(250+50,50+50,clYellow); end. Например,

32 Вывод текста в графическое окно Program text2; uses Crt,GraphABC; begin clrscr; h >

33 LoadPicture(fname) n:=LoadPicture(fname) – загружает рисунок из файла с именем fname в оперативную память и возвращает описатель рисунка в целую переменную n; если файл не найден, то возникает ошибка времени выполнения. Загружать можно рисунки в формате.bmp,.jpg или.gif. Загрузка готового рисунка

34 DrawPicture(n,x,y); Выводит рисунок с описателем n в позицию (x,y) графического окна. Вывод рисунка в графическое окно uses GraphABC; var pic: integer; begin pic:=LoadPicture(bmp1.bmp’); DrawPicture(pic,10,10); DestroyPicture(pic); end.

35 SavePicture(n, fname) — Сохраняет рисунок с описателем n в файл с именем fname. Рисунки можно сохранять в формате.bmp,.jpg или.gif. Сохранение созданного рисунка

37 Выбери (использование If …Then…Else)

38 Анимация без мерцания (Использование For…To…Do)

Некоторые команды библиотеки GraphABC.

Имя и параметры команды Действие команды
Line(x1,y1,x2,y2) Рисует отрезок из точки с координатами (x1,y1) в точку с координатами (x2,y2)
LineTo(x, y) Рисует отрезок из текущей точки в точку с координатами (x, y) (соответствует команде сместиться_в с опущенным пером для исполнителя Чертежник)
Rectangle(x1,y1,x2,y2) Рисует контур прямоугольника со сторонами параллельными сторонам экрана. Точки с координатами (x1, y1) и (x2, y2) определяют диагональные вершины прямоугольника.
RoundRect(x1,y1,x2,y2,w,h) Рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев.
FillRect(x1,y1,x2,y2); Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.
Circle(x,y, radius); Рисует окружность с центром в точке с координатами (x,y) и радиусом radius.
Ellipse(x1,y1,x2,y2); Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).
MoveTo(x, y) Переводит текущую точку в положение новое положение, в точку с координатами (x, y) (соответствует команде сместиться_в с поднятым пером для исполнителя Чертежник)
TextOut (x, y, text) Выводит Text на экран. Начало текста в точке с координатами (x, y)
SetPixel(x,y,color) Закрашивает цветом color точку с координатами (x, y)
SetPenColor(color) Задает цвет рисования линий. Параметр color – число в промежутке от 0 до 256 3 -1.
SetPenStyle(ps) Устанавливает стиль пера, задаваемый параметром ps. Стили пера задаются следующими именованными константами:
Значение Описание Вид линии
psSolid Сплошная линия
psDash Штриховая линия
psDot Пунктирная линия
psDashDot Штрихпунктирная линия
psDashDotDot Линия — штрих и два пунктира
psClear Отсутствие линии
Arc(x,y,r,a1,a2) Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
Pie(x,y,r,a1,a2) Рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc).
Chord(x,y,r,a1,a2) Рисует фигуру, ограниченную дугой окружности и отрезком, соединяющим ее концы (параметры процедуры имеют тот же смысл, что и в процедуре Arc).
FloodFill(x,y,color); Заливает область одного цвета цветом color, начиная с точки (x,y).
SetBrushColor(color) Устанавливает цвет кисти, задаваемый параметром color
SetBrushStyle(bs); Устанавливает стиль кисти, задаваемый параметром bs. Стили кисти задаются следующими именованными константами:
Константа Стиль Константа Стиль
bsSolid bsClear
bsCross dsDiagCross
bsHorizontal bsVertical
bsBDiagonal bsFDiagonal
SetFontColor(color); Устанавливает цвет шрифта
SetFontSize(sz); Устанавливает размер шрифта в пунктах.
SetFontName(name: string); Устанавливает наименование шрифта По умолчанию установлен шрифт, имеющий наименование MS Sans Serif. Наиболее распространенные шрифты – это Times, Arial и Courier New. Наименование шрифта можно набирать без учета регистра.
SetFontStyle(fs); Устанавливает текущий стиль шрифта. Стили шрифта задаются следующими именованными константами: fsNormal – обычный; fsBold – жирный; fsItalic – наклонный; fsBoldItalic – жирный наклонный; fsUnderline – подчеркнутый; fsBoldUnderline – жирный подчеркнутый; fsItalicUnderline – наклонный подчеркнутый; fsBoldItalicUnderline – жирный наклонный подчеркнутый.
ClearWindow; Очищает графическое окно белым цветом
ClearWindow(c); Очищает графическое окно цветом (c).
SetWindowSize(w,h) Устанавливает ширину и высоту графического окна.

Модуль GraphABC содержит константы и функции для работы с цветами. Тип ColorType, описывающий цвет, определен следующим образом:

Стандартные цвета задаются символическими константами:

clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебристый

Для работы с цветами используются следующие функции.

function RGB(r,g,b: integer): ColorType;

Возвращает целое значение, являющееся кодом цвета, который содержит красную, зеленую и синюю составляющие с интенсивностями R,G и B соответственно (R,G и B – целые в диапазоне от 0 до 255, причем, 0 соответствует минимальной интенсивности, 255 – максимальной).

function GetRed(color: ColorType): integer;

Выделяет красный цвет интенсивностью (целое число от 0 до 255);

function GetGreen(color: ColorType): integer;

Выделяет зеленый цвет интенсивностью (целое число от 0 до 255);

function GetBlue(color: ColorType): integer;

Выделяет синий цвет интенсивностью (целое число от 0 до 255).

Пример графической программы, рисующей изображение дома:

uses graphABC; //подключение модуля graphABC


SetWindowWidth(800); //ширина окна программы

SetWindowHeight(600); //высота окна программы

SetFontStyle(fsBold); //жирный стиль шрифта

SetFontSize(18); //размер шрифта

SetFontColor(clRed); //цвет шрифта

SetBrushColor(clAqua); //цвет заливки окна

FillRect(300,400,500,500); //процедура заливки окна

Введение в модуль GraphABC

Для просмотра полного описания модуля воспользуйтесь справкой в PascalABC.Net.

Содержание

GraphABC [ править ]

GraphABC — модуль для рисования в PascalABC.Net.

Процедуры и функции для рисования примитивов [ править ]

В GraphABC существует множество процедур и функций для рисования линий, прямоугольников, ломаных и текста. Но перед рисованием Вам следует уяснить то, что изначально все примитивы будут рисоваться черным цветом — изначальным цветом кисти.

Учебник по программированию.

Первые шаги. Язык программирования PascalABC.

Глава V. Графика.

Программирование под ОС Windows.

В данной главе мы изучим принципы работы с графикой. Для этих целей в PascalABC.NET специально был создан модуль GraphABC. Так же стоит сказать, что изучение программирования под операционную систему DOS у нас закончилось, и мы начнём создавать программы под операционную систему Windows.

§20. Модуль GraphABC.

Создадим новую программу, ничего не выполняющую, и подключим к ней модуль GraphABC. Сделать это можно с помощью шаблона – наберите gr и нажмите «Shift+Пробел». Получим следующий код:

Теперь после запуска такой программы мы увидим не консольное приложение, а обычное Windows-овское окно:

В этом и заключается преимущество PascalABC.NET (в смысле обучения) над другими интегрированными средами разработки. Нам нет необходимости писать код для создания окна, достаточно просто подключить модуль GraphABC к программе, и окно будет появляться автоматически. В таком случае мы можем сосредоточиться на изучении именно графики, а не проходить параллельно курс программирования под операционную систему Windows.

Внимательно посмотрите на окно. Вверху окна вы увидите четыре стандартных кнопки – одна слева и три справа. При нажатии левой кнопки появляется меню с командами:

О назначении трёх правых вы наверняка знаете не хуже меня – это свернуть, развернуть и закрыть.

По краям окна находится синяя окантовка или бордюр. Большая часть окна заполнена белым цветом – это клиентская часть. Именно в этой части окна мы и будем выводить наши графические рисунки.

Любое цифровое изображение формируется с помощью точек, которые называются пикселями. Они достаточно малы по сравнению с самим изображением, поэтому мы их не видим. Каждая точка в зависимости от изображения имеет свой цвет. Все вместе пиксели разных цветов и формируют понятное нам изображение.

Вся клиентская часть нашего окна поделена на точки (пиксели), которые имеют свои собственные координаты. Отчёт точек начинается с верхнего левого угла. Для того, что бы было понятно можно условно провести с лева на право ось Х, и с верху в низ ось У. Наглядно это демонстрирует следующий рисунок, на котором изображена буква Т:

На рисунке закрашенными в чёрный цвет являются пиксели со следующими координатами: (2;2), (3;2), (4;2), (5;2), (6;2), (4;3), (4;4), (4;5), (4;6). Здесь можно провести следующую аналогию: в консольном окне символы тоже имеют свои координаты, только там не оси Х и Y, а порядковый номер символа в строчке и номер строчки соответственно.

Здесь же стоит отметить, что если вы не сделали ни каких инициализирующих действий, то размер клиентской части нашего окна по умолчанию будет иметь размер 640х480 точек.

В данной главе изучение модуля GraphABC начнём с так называемых графических примитивов. К ним относятся следующие элементы: текст, точка, отрезок (линия), круг, окружность, дуга, прямоугольник, прямоугольник со скруглёнными краями и эллипс. Остальные возможности этого модуля будут приведены в виде обзора в 32 параграфе.

Текст. Текст рисуется с помощью следующей процедуры:

procedure TextOut (x,y: integer; s: string); – выводит строку s в прямоугольник с координатами левого верхнего угла (x,y). Пример:

TextOut( 10 , 10 , ‘Привет всем!’ );

Шрифт текста, который рисуется с помощью данной процедуры можно менять следующими подпрограммами:

procedure SetFontSize (size: integer); – устанавливает размер шрифта в пунктах.

Цукерберг рекомендует:  Pyqt5 - Ошибка при запуске примеров, использующих PyQT5

function FontSize : integer; – возвращает размер шрифта в пунктах.

procedure SetFontName (name: string); – устанавливает имя шрифта.

function FontName : string; – возвращает имя шрифта.

procedure SetFontColor (c: Color); – устанавливает цвет шрифта. О цветах поговорим отдельно в следующем подразделе.

function FontColor : Color; – возвращает цвет шрифта.

procedure SetFontStyle (fs: integer); – устанавливает стиль шрифта.

function FontStyle : integer; – возвращает стиль шрифта.

В модуле GraphABC определены следующие константы для установки стилей шрифта:

  • fsNormal – обычный;
  • fsBold – жирный;
  • fsItalic – наклонный;
  • fsBoldItalic – жирный наклонный;
  • fsUnderline – подчеркнутый;
  • fsBoldUnderline – жирный подчеркнутый;
  • fsItalicUnderline – наклонный подчеркнутый;
  • fsBoldItalicUnderline – жирный наклонный подчеркнутый.

function TextWidth (s: string): integer; – возвращает ширину строки s в пикселях при текущих настройках шрифта.

function TextHeight (s: string): integer; – возвращает высоту строки s в пикселях при текущих настройках шрифта.


var x,y, //Координаты для вывода текста

xTemp,yTemp: byte ; //Координаты для вывода второй строки

SetFontName( ‘Times New Roman’ );

//Выводим первую строку

TextOut(x,y, ‘Привет всем!’ );

//Формируем координату для второй строки

xTemp:=x+Round(TextWidth( ‘Привет всем!’ )/ 2 )-

Round(TextWidth( ‘Дорогие друзья!’ )/ 2 );

//Выводим вторую строку

TextOut(xTemp,yTemp, ‘Дорогие друзья!’ );

Обратите внимание, что при формировании координат для второй строки, была использована функция Round, округляющая вещественное число до ближайшего целого. Дело в том, что координаты пикселей могут иметь только целые значения.

Так же обратите внимание на то, что в данном примере мы вывели первую строку, используя координаты x,y. Координаты для второй строки были рассчитаны относительно этих же координат. В таком случае можно менять координаты x и y, и при этом строки относительно друг друга своё положение не изменят. Так же можно менять размер и стиль шрифта. Например, если сделаем x=10,y=20, размер шрифта равным 10 и стиль шрифта fsBold, то получим следующий результат :

Здесь координаты x,y являются абсолютными, а xTem, yTemp – относительными. Очень часто заранее неизвестно, где будет находиться тот или иной элемент изображения. Поэтому необходимо во время выполнения программы вычислять его координаты относительно какого-либо другого элемента. Отсюда и название – относительные координаты.

Цвета. Всего в модуле GraphABC определено 141 константа для установки цвета. Все они начинаются с префикса cl, поэтому, набрав этот префикс, вам всплывёт подсказка, в которой вы увидите весь список доступных цветов. Для этого должна быть включена подсказка по нажатию клавиш. Об этом речь шла в 16-ом параграфе. Так же про цвета вы можете узнать в справке в пункте: «Стандартные модули -> Модуль GraphABC -> GraphABC: цветовые константы».

Плюсом к вышесказанному о цветах предлагаю написать небольшую программку, которая будет выводить цвет и его название:

var mC: array [ 1..141 ] of Color;

mC[ 1 ]:=clAquamarine;

mC[ 140 ]:=clYellow;

mC[ 141 ]:=clYellowGreen ;

for var i:= 1 to 141 do

Rectangle(x,y,x+ 100 ,y+ 10 );

TextOut(x,y+ 10 ,mC[i].Name);

if x> 1200 then begin x:= 5 ; y:=y+ 35 end ;

В целях экономии бумаги, заполнение всего массива цветов приводить не стал. Если будете сами набирать данную программу, то можете скопировать константы из справки.

Так же стоит сказать, что тип Color – структурированный тип запись. Поэтому он имеет поле Name, в котором содержится имя цвета. Для того, что бы использовать этот цвет в программе к этому имени необходимо добавить префикс cl.

В предыдущем абзаце было сказано, что тип Color – тип запись. Это не совсем верно. В дальнейшем, когда будем изучать ООП, мы узнаем что такое на самом деле тип Color. На данном этапе предлагаю воспринимать его, как тип запись.

Точка. Для того, что бы нарисовать или стереть точку имеется следующая процедура:

procedure SetPixel (x,y: integer; c: Color); – закрашивает пиксель с координатами (x,y) цветом c.

Если необходимо стереть точку, то на её месте можно нарисовать точку цвета окружающего фона. Для того что бы узнать цвет окружающего фона есть процедура, которая позволяет узнать цвет точки в определённом месте:

function GetPixel (x,y: integer): Color; – возвращает цвет пикселя с координатами (x,y).

С помощью процедуры SetPixel удобно рисовать графики всевозможных функций. Например, следующий код демонстрирует вывод синусоидальной функции на экран:

for var i:= 1 to 640 do

SetPixel(i,Round(Sin(i/ 8 )* 10*(-1) + 20 ),clBlack);

Здесь хочу заострить ваше внимание на следующем нюансе: для формирования координаты Y, написано следующее выражение:

Sin(i/ 8 )* 10*(-1) + 20

Поделив i на 8, мы увеличили период, т.е. растянули график по оси Х. Помножив на 10, мы увеличили амплитуду. Т.е. растянули график по оси У. Т.к. обычно ось Y всегда направлена снизу вверх, то пользователю будет нелепо видеть, что синусоидальная функция вначале убывает, а потом возрастает. Поэтому нам необходимо было помножить получившееся значение на -1 для того что бы перевернуть график. Добавив 20, мы сместили график в низ на 20 пикселей. При этом мы получили довольно красивую картинку.

Без этих манипуляций, т.е. просто написав Round(sin(i)), мы бы получили не работающую программу т.к. получили бы отрицательные значения по оси Y, а т.к. пикселей с отрицательными координатами нет, то программа во время выполнения закрылась бы с ошибкой. Но даже если мы добавим 20 и тем самым сместим график вниз, то всё равно получится не со всем то, что бы хотел увидеть пользователь:

К чему все эти рассуждения. Дело в том, что при выводе результатов каких либо вычислений на экран, вам придётся заботиться о том, что бы они были удобными для восприятия пользователем.

Отрезок. Самая простая процедура для рисования отрезка – это:

procedure Line (x1,y1,x2,y2: integer; c: Color); – рисует отрезок от точки (x1,y1) до точки (x2,y2) цветом c. Думаю, что здесь всё понятно, никаких дополнительных пояснений не требуется.

Есть ещё одна процедура:

procedure LineTo (x,y: integer; c: Color); – рисует отрезок от текущей позиции до точки (x,y) цветом c. Текущая позиция при этом переносится в точку (x,y) . Здесь стоит остановиться на том, что такое текущая позиция. Так же как и при работе с типизированными файлами существует некая переменная, которая хранит в себе координаты текущей позиции. Текущую позицию можно изменить с помощью следующей процедуры:

procedure MoveTo (x,y: integer); – устанавливает текущую позицию рисования в точку (x,y).

С помощью процедуры LineTo удобно рисовать непрерывную ломаную линию:

for var i:= 1 to 64 do

LineTo(i* 10 ,Random( 1 , 29 ),clBlack);

for var i:= 1 to 64 do

LineTo(i* 10 ,Random( 30 , 59 ),clBlack);


При вызове процедур Line и LineTo цвет в качестве параметра можно не указывать. Тогда рисование линии будет происходить цветом, который установлен в свойствах пера. Здесь стоит отметить, что рисование линий и контуров других примитивов происходит как бы пером, поэтому цвет, толщина линии и стиль линии зависят от того как настроено перо.

Подпрограммы для настройки пера.

procedure SetPenColor (c: Color); – устанавливает цвет пера.

function PenColor : Color; – возвращает цвет пера.

procedure SetPenWidth (Width: integer); – устанавливает ширину пера в пикселях.

function PenWidth : integer; – возвращает ширину пера в пикселях.

procedure SetPenStyle (style: DashStyle ); – устанавливает стиль пера.

function PenStyle : DashStyle; – возвращает стиль пера.

Стили пера бывают следующие:

  • psSolid – сплошное перо;
  • psClear – прозрачное перо;
  • psDash – штриховое перо;
  • psDot – пунктирное перо;
  • psDashDot – штрихпунктирное перо;
  • psDashDotDot – альтернативное штрихпунктирное перо.

Далее пример, в котором настроенное перо рисует штриховую линию коричневого цвета, шириной в 3 пикселя:

for var i:= 1 to 32 do

LineTo(i* 20 ,Random( 1 , 29 ));

В данном параграфе мы познакомились с модулем GraphABC. Научились выводить в графическое окно текст и линию. А так же научились закрашивать пиксель определённым цветом и настраивать перо.

1. Начертить графики следующих функций, в диапазоне значений параметра от 0 до 12: а) ; б) ; б) .

2. Перечертить на экран чертёж, представленный на рисунке в относительных координатах. Так же масштаб рисунка должен задаваться константой, при этом при смене масштаба рисунок должен сохранять пропорции. Размеры и выносные линии чертить не надо.

const m= 20 ; //Массштаб — 20 пикселей это одно реальное значение

var rX,rY: real ; //реальные значения параметров функции

//Чертим оси координат

Line( 20 , 100 , 285 , 100 );

Line( 30 , 20 , 30 , 110 );

//Стрелочки ось X

Line( 285 , 100 , 278 , 97 ); Line( 285 , 100 , 278 , 103 );

//Стрелочки ось Y

Line( 30 , 20 , 27 , 27 ); Line( 30 , 20 , 33 , 27 );

for var i:= 1 to 12 do

Line(temp, 90 ,temp, 110 );

TextOut(temp- 5 , 115 ,IntToStr(i));

for var i:= 1 to 3 do

var temp:= 100 -i*m;

Line( 25 ,temp, 35 ,temp);

TextOut( 15 ,temp- 8 ,IntToStr(i));

for var i:= 30 to 12 *m+ 30 do

SetPixel(i,Round(-m*rY+ 100 ),clRed);

В пунктах b и c код программы остаётся тот же, за исключением 32-ой строчки:

b) rY:= 1.3 *Power(rX, 1 / 3 );

c) rY:= 1.3 *Sin(rX)+ 1.5 ;

const m= 2 ; //Массштаб

X0= 10 ;Y0= 10 ; //Начало координат

var tp: record //Текущая позиция дл процедуры LineFT

x,y: integer ; end ;

//Line From tp To x,y

//Рисует линию от текущей позиции в точку (x,y),

//которая задаётся относитльно текущей позици

«Работа с графикой в системе Pascal АВС»

Тема: Обобщение и закрепление материала по теме: «Работа с графикой в системе Pascal АВС

Цели урока:


Образовательная: повторить с учащимися в модуле graphABC примитивные функции и процедуры. Умению правильно записывать программу, выделять главное. Развить навыки творческого подхода к созданию разнообразных фигур.

Развивающая: развивать способности учащихся анализировать, логически рассуждать; формировать мотивацию постановкой познавательных задач; способствовать формированию умений самостоятельно приобретать и осмысливать знания.

Воспитательная: проконтролировать усвоение знаний; сформировать навыки общения между учащимися; стимулировать работу учащихся; создать позитивное отношение к изучаемому материалу. Привить интерес к предмету.

Просмотр содержимого документа
««Работа с графикой в системе Pascal АВС» »

БОКЕЙОРДИНСКИЙ РАЙОННЫЙ ОТДЕЛ ОБРАЗОВАНИЯ

Общеобразовательная средняя школа

«Работа с графикой в системе Pascal АВС»

Умаров Жасулан Жигерович

Тема: Обобщение и закрепление материала по теме: «Работа с графикой в системе Pascal АВС

Образовательная: повторить с учащимися в модуле graphABC примитивные функции и процедуры. Умению правильно записывать программу, выделять главное. Развить навыки творческого подхода к созданию разнообразных фигур.

Развивающая: развивать способности учащихся анализировать, логически рассуждать; формировать мотивацию постановкой познавательных задач; способствовать формированию умений самостоятельно приобретать и осмысливать знания.

Воспитательная: проконтролировать усвоение знаний; сформировать навыки общения между учащимися; стимулировать работу учащихся; создать позитивное отношение к изучаемому материалу. Привить интерес к предмету.

Задачи: Увлечь учащихся созданием программ на языке программирования. Закрепить понятие о процедурах и функциях в модуле graphABC.

Тип урока: закрепление пройденного материала.

Карточки с заданием;

План работы учащихся.

Оборудование урока: Интерактивная доска.

Наглядное пособие: слайд- шоу.

1. Постановка цели урока. Организационный момент – 3 мин

2. Актуализация знаний (Повторение изученного материала) – 5 мин

3. Решение заданий:

Задание 1, задание 2, задание 3, задание 4 — 15 мин

Задание 5 (работа с карточкой) – 3 мин

Задание – отдых (отгадывание ребуса) – 2 мин

3. Практическая работа – 10 мин

4. Домашнее задание – 2 мин

5. Подведение итогов урока. Выставление оценок – 5 мин

Цукерберг рекомендует:  Blockchain 3.0 актуальные тренды

1. Организационный момент – 3 мин.

2. Актуализация знаний — Повторение изученного материала (Вопрос — ответ)5 мин.

В среде PascalABC рисование осуществляется в графическом окне. Начало системы координат находится в левом верхнем углу окна, ось абсцисс направлена вправо, а ось ординат – вниз.

Библиотека стандартных графических процедур и функций хранится в модуле GraphABC. При работе с графикой эту библиотеку необходимо подключать в разделе описаний с помощью зарезервированного слова Uses (подключить). Размеры графического окна можно задавать с помощью процедуры SetWindowSize(w,h), где w и h – ширина и высота окна. Значения координат принимают только целочисленные значения: x от 0 до w, а y от 0 до h.

1. Line(x1,y1,x2,y2) рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

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

3. Rectangle(x1,y1,x2,y2) рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).

4. SetPenWidth(w) устанавливает ширину пера, равную w пикселам.

5. SetPenColor(c) устанавливает цвет пера.

6. Для установки цвета кисти служит процедура SetBrushColor(clcolor).

Задание 1. Написать программу изображения отрезка:

Дополнительно: Изобразить вторую линию с другими координатами.

З адание 2. На этом же отрезке установить ширину пера, равную 10 пикселам, а также цвет пера:

ABCPascal Модуль GraphABC. Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией. — презентация

Презентация была опубликована 6 лет назад пользователемschool39.tgl.ru

Похожие презентации

Презентация на тему: » ABCPascal Модуль GraphABC. Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией.» — Транскрипт:

1 ABCPascal Модуль GraphABC

2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией программы должна быть инструкция uses GraphABC;

3 Графический режим 639 точек 479 точек Начало отсчета – левый верхний угол экрана Любое изображение формируется из простых геометрических фигур. Это точки, отрезки, окружности и т.д. Для того чтобы запрограммировать вывод изображения, надо научиться задавать координаты графических объектов. Началом отсчета является верхний левый угол экрана. Значение Х — координаты отсчитывается слева направо, а Y – сверху вниз. Допустимый диапазон графических координат (639х479).

4 Управление экраном SetWindowW >


5 ClearWindow; — очищает графическое окно белым цветом. ClearWindow(color); — очищает графическое окно указанным цветом. Очистка графического окна program clear; uses GraphABC; begin ClearWindow; ClearWindow (clMoneyGreen); end. Цвет зеленых денег В модуле GraphABC имеется ряд предопределенных констант для обозначения стандартных цветов. Их более сотни, поэтому ниже приводится их неполный список:clYellow, clBlack, clMagenta, clSilver, clCyan, clRed, clOrange, clGreen clBrown, clLightGray

6 Графические примитивы 1.Точка 2.Линия 3.Прямоугольник 4.Окружность 5.Эллипс 6.Сектор 7.Дуга

7 Точка SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color program tochka; uses GraphABC; begin SetPixel(300,200,clred); end.

8 Линии LineTo(x,y) — рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y). x,y Program liniay; uses GraphABC; begin LineTo(300,200); end.

9 Линии Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2). Program liniay; uses GraphABC; begin line(100,50,500,250); end. x1,y1 x2,y2

10 Используемые цвета clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебряный Random( ) – случайный цвет из всей палитры цветов Паскаля

11 Цвет линии SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color. Program liniay; uses GraphABC; begin setpencolor(clred); line(30,30,400,350); end.

12 Пунктирная линия SetPenStyle( ); — устанавливает стиль пера, задаваемый номером. program prim; uses GraphABC; begin Setpencolor(clred); SetPenStyle(1); <1 - длинный штрих>Line(10,100,350,100); SetPenStyle(2); <2 - короткий штрих>Line(10,125,350,125); SetPenStyle(3); <3 - штрих-пунктир>Line(10,150,350,150); end.

13 Толщина линии SetPenW >

14 Program treugolnik; uses GraphABC; begin setpenw >

15 Прямоугольник Rectangle(x1,y1,x2,y2) — рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2). Program pryamougolnik; uses GraphABC; begin Rectangle(50,50,200,200); end. x1,y1 x2,y2

16 Заливка цветом FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y). Program pryamougolnik; uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end. x1,y1 x2,y2

17 Заливка кистью SetBrushColor(color) — устанавливает цвет кисти. Заливка кистью распространяется на замкнутый контур, описание которого следует за процедурой установки цвета кисти. Program zalivka_kist; uses GraphABC; Begin SetBrushColor(clGreen); Rectangle(50,50,300,300); end.

18 Заливка кистью SetBrushStyle(номер от 0 до 7 или название) — устанавливает стиль кисти, задаваемый номером или символической константой. Program p12_zalivka; uses GraphABC; Begin SetBrushColor(clAqua); SetBrushStyle(1); Rectangle(10,10,100,100); SetBrushColor(clRed); SetBrushStyle(2); Rectangle(110,10,200,100); SetBrushColor(clBlue); SetBrushStyle(3); Rectangle(210,10,300,100); SetBrushColor(clGreen); SetBrushStyle(4); Rectangle(10,110,100,210); SetBrushColor(clYellow); SetBrushStyle(5); Rectangle(110,110,200,210); SetBrushColor(clBlack); SetBrushStyle(6); Rectangle(210,110,300,210); end. По умолчанию задается стиль 0 – сплошная заливка цветом.

19 Заливка кистью SetBrushPicture(fname) — устанавливает в качестве образца для закраски кистью образец, хранящийся в файле fname, при этом текущий цвет кисти при закраске игнорируется. uses GraphABC; begin SetBrushPicture(‘bmp1.bmp’); Ellipse(0,0,640,400); end.

20 Program pryamougolnik; uses GraphABC; begin SetPenColor(clred); SetPenW >

21 Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r. Окружность Program circle; uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end. x1,y1 r

22 Эллипс Ellipse(x1,y1,x2,y2) — рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2). Program oval; uses GraphABC; begin Ellipse(50,50,200,350); FloodFill(50+100,50+100,clred); Ellipse(250,150,550,300); FloodFill( , ,clBlue); end. x1,y1 x2,y2 x1,y1 x2,y2

23 Дуга окружности Arc(x,y,r,a1,a2) — Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки). Program duga; uses GraphABC; Begin SetPenW >

24 Pie(x,y,r,a1,a2) — рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc). Сектор Program sector; uses GraphABC; begin Pie(300,200,100,0,90); FloodFill(300+10,200-10,clAqua); end.

25 Вывод текста в графическое окно TextOut(x,y,строка); — выводит строку текста в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст). Program text; uses GraphABC; begin TextOut(100,30,’Квадрат’); Rectangle(50,50,200,200); FloodFill(55,55,clBlue); end.

26 Действия со шрифтом SetFontName(name) — устанавливает наименование шрифта. SetFontColor(color) — устанавливает цвет шрифта. SetFontSize(sz) — устанавливает размер шрифта в пунктах. SetFontStyle(fs) — устанавливает стиль шрифта.

27 Название шрифта По умолчанию установлен шрифт, имеющий наименование MS Sans Serif. Наиболее распространенные шрифты – это Times, Arial и Courier New. Наименование шрифта можно набирать без учета регистра. Пример: SetFontName(Times);

28 Стиль шрифта Задается именованными константами: fsNormal – обычный; fsBold – жирный; fsItalic – наклонный; fsBoldItalic – жирный наклонный; fsUnderline – подчеркнутый; fsBoldUnderline – жирный подчеркнутый; fsItalicUnderline – наклонный подчеркнутый; fsBoldItalicUnderline – жирный наклонный подчеркнутый.

29 Program text; uses GraphABC; Begin SetFontName(Arial); SetFontSize(20); SetFontColor(clRed); TextOut(10,10,обычный’); SetFontStyle(fsItalic); SetFontColor(clBlue); TextOut(10,50,наклонный’); SetFontStyle(fsBold); SetFontColor(Random( )); TextOut(10,90,жирный’); SetFontStyle(fsUnderline); SetFontColor(Random( )); TextOut(10,130,подчеркнутый’); SetFontStyle(fsBoldItalicUnderline); SetFontColor(Random( )); TextOut(10,170,жирный, наклонный, подчеркнутый’); end. Например,

30 Используемые цвета Цвет можно задавать и с помощью функции RGB(r,g,b) где r, g и b – целые числа в диапазоне от 0 до 255. Функция возвращает целое значение, являющееся кодом цвета, который содержит красную, зеленую и синюю составляющие с интенсивностями r, g и b соответственно (0 соответствует минимальной интенсивности, 255 – максимальной). RGB(255,255,255) – соответствует белому цвету. RGB(0,0,0) – соответствует черному цвету.

31 Program color; uses GraphABC; begin Clearwindow(rgb(200,150,250)); TextOut(93,30,’ Квадрат ‘); Rectangle(50,50,200,200); FloodFill(55,55,clRed); TextOut(275,30,’ Эллипс’); Ellipse(250,50,350,200); FloodFill(250+50,50+50,clYellow); end. Например,

32 Вывод текста в графическое окно Program text2; uses Crt,GraphABC; begin clrscr; h >

33 LoadPicture(fname) n:=LoadPicture(fname) – загружает рисунок из файла с именем fname в оперативную память и возвращает описатель рисунка в целую переменную n; если файл не найден, то возникает ошибка времени выполнения. Загружать можно рисунки в формате.bmp,.jpg или.gif. Загрузка готового рисунка

34 DrawPicture(n,x,y); Выводит рисунок с описателем n в позицию (x,y) графического окна. Вывод рисунка в графическое окно uses GraphABC; var pic: integer; begin pic:=LoadPicture(bmp1.bmp’); DrawPicture(pic,10,10); DestroyPicture(pic); end.

35 SavePicture(n, fname) — Сохраняет рисунок с описателем n в файл с именем fname. Рисунки можно сохранять в формате.bmp,.jpg или.gif. Сохранение созданного рисунка

37 Выбери (использование If …Then…Else)

38 Анимация без мерцания (Использование For…To…Do)

Graphabc — Где научиться программированию на Pascal в модуле graphABC?

После запуска PascalABC , по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно. Чтобы его открыть, необходимо подключить модуль GraphABC. В этом модуле содержится обширный набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой. С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями. Подключение осуществляется в разделе описаний.

Формат подключения модуля GraphABC:

Начало координат графического окна модуля находится в верхнем левом углу. Ось x направлена вправо, а ось y — вниз. Координаты исчисляются в пикселях.

Все команды библиотеки Graph ABC являются подпрограммами и описаны в виде процедур и функций. Для того, что бы команда выполнилась необходимо указать команду и задать значения параметрам.

Некоторые команды библиотеки GraphABC

Имя и параметры команды

Рисует отрезок из точки с координатами (x1,y1) в точку с координатами (x2,y2)

Рисует отрезок из текущей точки в точку с координатами (x, y) (соответствует команде сместиться_в с опущенным пером для исполнителя Чертежник)

Рисует контур прямоугольника со сторонами параллельными сторонам экрана. Точки с координатами (x1, y1) и (x2, y2) определяют диагональные вершины прямоугольника.

Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.

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

Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2) .

TextOut (x, y, text)

Выводит Text на экран. Начало текста в точке с координатами (x, y)


Закрашивает цветом color точку с координатами (x, y)

Задает цвет рисования линий. Параметр color – число в промежутке от 0 до 256 3 -1.

Задает толщину рисования линий. Параметр n – число в промежутке от 1 до 50

Устанавливает стиль пера, задаваемый параметром ps .

Стили пера задаются следующими именованными константами:

Библиотеки (модули) CRT и Graph в Turbo Pascal.

Б иблиотека (модуль) CRT в Turbo Pascal.

Библиотека CRT позволяет менять цвета и яркость экрана, производить

его очистку, управлять звуковым генератором компьютера.

Подключение модуля CRT производится директивой USES CRT, которая

указывается в разделе описаний. CRT — аббревиатура, означающая

Таблица настройки цветов в модуле CRT Turbo Pascal

Число Процедуры
    0
    TextColor, TextBackGround
    1
    TextColor, TextBackGround
    2
    TextColor, TextBackGround
    3
    TextColor, TextBackGround
    4
    TextColor, TextBackGround
    5
    TextColor, TextBackGround
    6
    TextColor, TextBackGround
    7
    TextColor, TextBackGround
    8
    TextColor


    9
    TextColor
    10
    TextColor
    11
    TextColor
    12
    TextColor
    13
    TextColor
    14
    TextColor
    15
    TextColor
    128
    TextColor (как слогаемое)
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих