курсач. Актуальность На сегодняшний день графика имеет не маловажное значение для языков программирования Она разрешает визуализировать все возможные программы, что придаёт яркость и удобство использования Так как живём в трехмерном мире,
Скачать 0.97 Mb.
|
Содержание Введение §1Понятие модулей и принципы их использования §2Описание алгоритма работы программы §3Работа с графическим модулем средствами Pascal ABCNet Заключение Список литературы Приложение Введение Актуальность На сегодняшний день графика имеет не маловажное значение для языков программирования Она разрешает визуализировать все возможные программы, что придаёт яркость и удобство использования Так как живём в трехмерном мире, то создание графических приложений в языках программирования не в состоянии оставить данную тему в стороне Целью курсовой работы является использования графического модуля в среде программировании PascalАВСNet Для достижения поставленной цели решить ряд задач Изучить основные понятия графики, функции и процедуры работы графикой PascalАВС Освоить навыки создания графических изоброжений в среде программировании PascalАВСNet Разработать работу с графическим модулем средствами PascalАВСNet Курсовая работа состоит из введения, заключения, трех параграфов, списка использованной литературы и приложения с листингом В первом параграфе описывается понятие модулей и принципы их использования Во втором параграфе описывается основные функции и процедуры работы с графикой в PascalABCNetВ третьем параграфе описывается работа с графическим модулем средствами Pascal ABCNet §1 Понятие модулей и принципы их использования Система PascalABCNet основана на языке Object Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию Некоторые языковые конструкции в PascalABCNet допускают, наряду с основным, упрощенное использование, что позволяет использовать их на ранних этапах обучения Например, в модулях может отсутствовать разделение на секцию интерфейса и секцию реализации В этом случае модули устроены практически так же, как и основная программа, что позволяет приступить к их изучению параллельно с темой "Процедуры и функции" Тела методов можно определять непосредственно внутри классов (в стиле Java и C#), что позволяет создавать классы практически сразу после изучения записей, процедур и функций Ряд модулей системы программирования PascalABCNet специально создавался для учебных целей: Модуль PABCSystem называется системным и автоматически подключается первым к любой программе или модулю Он содержит ряд процедур, функций, констант, типов, методов расширения, перегруженных операций Раздел uses состоит из нескольких подряд идущих секций uses, каждая из кoтopыx имеет вид: uses список имен; Имена в списке перечисляются через запятую и могут быть либо именами подключаемых внешних модулей PascalABCNET, либо пространствами имен NET Например: uses System, SystemCollectionsGeneric, MyUnit; Здесь MyUnit - модуль PascalABCNET, представленный в виде исходного текста или откомпилированного pcu-модуля, System и SystemCollectionsGeneric - пространства имен NET В модуле или основной программе, которая содержит раздел uses, можно использовать все имена из подключаемых модулей PascalABCNET и пространств имен NET Основное отличие между модулями и пространствами имен NET состоит в том, что модуль содержит код, а пространства имен NET содержат лишь имена - для использования кода его необходимо подключить с помощью директивы компилятора {$reference ИмяСборки}, где ИмяСборки - имя dll-файла, содержащего NET-код Другое не менее важное отличие состоит в том, что в модуле или основной программе нельзя использовать имена, определенные в другом модуле, без подключения этого модуля в разделе uses Напротив, если сборка NET подключена директивой $reference, то можно использовать ее имена, явно уточняя их пространством имен, не подключая это пространство имен в разделе uses Например: begin SystemConsoleWriteLine('Pascal.ABCNET'); end По умолчанию в первой секции uses неявно первым подключается системный модуль PABCSystem, содержащий стандартные константы, типы, процедуры и функции Даже если раздел uses отсутствует, модуль PABCSystem подключается неявно Кроме того, по умолчанию с помощью неявной директивы $reference подключаются сборки Systemdll, SystemCoredll и mscorlibdll, содержащие основные NET-типы Поиск глобальных имен осуществляется вначале в текущем модуле или основной программе, затем во всех подключенных модулях и пространствах имен, начиная с самого правого в секции uses и заканчивая самым левым При этом считается, что пространство имен более правого модуля вложено в пространство имен более левого Таким образом, конфликта имен не происходит Если необходимо использовать имя из конкретного модуля или пространства имен, следует использовать запись ИмяМодуляИмя или ИмяПространстваИменNETИмя В качестве имени модуля может выступать также имя основной программы если у нее присутствует заголовок program Библиотеки dllБиблиотеки dll (dynamically linked libraries): содержат группу взаимосвязанных подпрограмм находятся в откомпилированном файле предназначены для обращения к ним из различных программ Они находятся в файле с расширением dll либо в текущем каталоге приложения (локальные), либо в системном каталоге (глобальные библиотеки) Глобальными библиотеками могут пользоваться одновременно несколько приложений По своему назначению библиотеки очень похожи на модули, однако, имеют ряд важных отличий Отличия библиотек от модулейПри создании из модулей исполняемого файла exe программа-линковщик помещает в него только те подпрограммы, переменные, типы и константы, которые используются (вызываются) в основной программе При компиляции же библиотеки в нее добавляются все подпрограммы, потому что неизвестно, какие подпрограммы потребуются конкретному приложению Библиотеки dll при выполнении программы полностью загружаются в оперативную память Библиотеки dll часто используются одновременно несколькими программами Библиотека dll может быть написана и откомпилирована на одном языке, а обращаться к ней можно из программ, написанных на других языках Например, программа на PascalABCNET может вызывать функцию из библиотеки, созданной на языке C# и наоборот Таким образом, библиотеки обеспечивают межъязыковое взаимодействие Структура библиотекиБиблиотека имеет практически ту же структуру, что и модуль: library имя библиотеки; interface раздел интерфейса implementation раздел реализации end Имя библиотеки должно совпадать с именем pas-файла, в котором библиотека находится Имеется также упрощенный синтаксис библиотек - без разделов интерфейса и реализации, совпадающий с упрощенным синтаксисом модулей (за исключением заголовка) В результате компиляции библиотеки в текущем каталоге создаётся dll-файл, содержащий откомпилированную библиотеку Подключение библиотеки к основной программеДля подключения библиотеки к основной программе используется директива компилятора {$reference ИмяБиблиотеки} Например: {$reference.ABCdll} {$reference.ABC1dll} begin writeln(aGetType); end Подключение библиотеки может проводиться в любом месте исходного файла Библиотеки ABC и ABC1 имеют соответственно вид: library ABC; var a: integer; end и library ABC1; var a: real; end Алгоритм поиска имен в библиотекахВ первую очередь имя ищется в исходном модуле, затем в модулях, подключенных в разделе uses в порядке справа налево, и только потом - в подключенных библиотеках в порядке подключения Согласно этому правилу в примере из предыдущего пункта переменная a будет иметь тип integer В случае коллизии имен используемое имя можно предварять именем библиотеки с последующей точкой: {$reference ABCdll} {$reference ABC1dll} begin writeln(ABC1aGetType); end Модуль Graph3D реализует трехмерные графические объекты с возможностью масштабирования, группировки, поворотов, перемещения, создания дочерних объектов Модуль Graph3D предназначен для обучения основам объектно-ориентированного программирования и основам 3D-графики Он позволяет создавать простейшие трехмерные анимации и простейшие интерактивные трехмерные программы и игры Модуль Graph3D основан на библиотеке Helix Toolkit WPF Модуль векторной графики ABCObjects предназначен для быстрого изучения основ объектно-ориентированного программирования, а также позволяет создавать достаточно сложные игровые и обучающие программы Модуль растровой графики GraphABC обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi Он доступен в несобытийных программах и позволяет легко создавать анимацию без мерцания Модуль GraphABC представляет собой простую графическую библиотеку и предназначен для создания несобытийных графических и анимационных программ в процедурном и частично в объектном стиле Рисовaние осуществляется в специальном графическом окне, возможность рисования в нескольких окнах отсутствует Кроме этого, в модуле GraphABC определены простейшие события мыши и клавиатуры, позволяющие создавать элементарные событийные приложения Основная сфера использования модуля GraphABC - обучение Модуль GraphABC основан на графической библиотеке GDI+, но запоминает текущие перо, кисть и шрифт, что позволяет не передавать их в качестве параметров при вызове графических примитивов К свойствам пера, кисти и шрифта можно получать доступ как в процедурном, так и в объектном стиле Например, для доступа к цвету текущего пера используется процедура SetPenColor(c) и функция PenColor, а также свойство PenColor В модуле GraphABC можно управлять самим графическим окном и компонентом GraphABCControl, на котором осуществляется рисование По умолчанию компонент GraphABCControl занимает всю клиентскую часть графического окна, однако, на графическое окно можно добавить элементы управления, уменьшив область, занимаемую графическим компонентом (например, так сделано в модулях Robot и Drawman) Модуль GraphWPF представляет собой простую графическую библиотеку и предназначен для создания графических и анимационных программ в процедурном и частично в объектном стиле Рисование осуществляется в специальном графическом окне, возможность рисования в нескольких окнах отсутствует Кроме этого, в модуле GraphWPF определены простейшие события мыши и клавиатуры, позволяющие создавать элементарные событийные приложения Основная сфера использования модуля GraphWPF - обучение Модуль GraphWPF основан на графической библиотеке WPF и является современной и усовершенствованной версией устаревшего модуля GraphABC Модуль WPFObjects реализует векторные графические объекты с возможностью наложения друг на друга, создания составных графических объектов и многократного их вложения друг в друга Каждый векторный графический объект корректно себя перерисовывает при перемещении, изменении размеров и частичном перекрытии другими объектами Модуль WPFObjects предназначен для раннего обучения основам объектно-ориентированного программирования, а также для реализации анимационных и интерактивных проектов средней сложности Модуль WPFObjects основан на графической библиотеке WPF и является современной и усовершенствованной версией устаревшего модуля ABCObjects Модуль ABCSprites реализует спрайты - анимационные объекты с автоматически меняющимися кадрами Спрайт представляется классом SpriteABC и является разновидностью мультикартинки MultiPictureABC, однако, обладает двумя дополнительными возможностями: 1 Спрайты автоматически анимируются в цикле, что управляется специальным таймером Можно регулировать скорость анимации каждого спрайта, а также останавливать/запускать все спрайты 2 Спрайты могут иметь состояния, задаваемые строками Каждое состояние имеет свой независимый набор кадров, меняющихся циклически Например, игровой объект в состоянии "Идти" имеет три кадра, а в состоянии "Сидеть" - один кадр (в этом состоянии анимация отсутствует) Переключая состояния, можно моделировать различное поведение игрового объекта Кроме того, анимацию всех спрайтов можно выключить/включить вызовом следующих процедур:
Для работы с рисунками используется класс Picture, позволяющий рисовать на себе те же графические примитивы, что и на экране Режим блокировки рисования на экране (LockDrawing) позволяет осуществлять прорисовку лишь во внеэкранном буфере, после чего с помощью метода Redraw восстанавливать все графическое окно Данный метод используется для ускорения анимации и создания анимации без мерцания Модули Timers и Sounds позволяют создавать таймеры и звуки, которые также реализованы в процедурном стиле Эти модули можно использовать даже в консольных программах Основные понятия графики Экраны цветных мониторов состоят из прямоугольной решётки точек(пикселей),светящихся разным цветом Каждый цветной пиксель образован тремя более мелкими по площади участками красного, зелёного и синего цветов При свечении этих участков с разной интенсивностью цвета смешиваются, создавая элементы изображения различных оттенков и яркости Важной характеристикой растра является его расширение Расширение экрана-это количество точек(пикселей) на единицу длины Чем это число выше, тем более мелкими являются сами пиксели, и, соответственно, более плотно они располагаются на плоскости, что и приводит к тому, что воспринимаем их как единое, цельное изображение Из года в год разрешающая способность принтеров, мониторов, сканеров и тп растёт Для использования графических возможностей языка Паскаль необходимо в блоке описания uses подключить графический модуль Graph Модуль содержит набор графических функций и процедур, основные из них которые рассмотрены ниже Положение каждой точки изображения задано координатами Х и У Координаты- целые числа, они задают номера колонки и строки и не зависят от физического размера экрана Оси координат направлены следующим образом: горизонтальная ось Х направлена слева направо; вертикальная ось У направлена сверху вниз; верхний левый угол имеет координаты(0, 0) Рис1 Ось координат Очевидно, что запись изображения требует хранения информации о положении множества точек, для каждой из которых должен быть задан цвет Цветное изображение получается смешиванием трех основных цветов - красного, зеленого и синего Такая модель представления цвета называется моделью RGB ( Red - Green - Blue ) Управляя интенсивностью компонентов, можно получить различные оттенки и степени интенсивности цвета В частности, для получения градаций серого надо взять интенсивности трех основных цветов равными друг другу Стандартный модуль GraphABC системы PascalABCNet содержит типы, константы, переменные, процедуры и функции, позволяющие создавать изображения в специально графическом окне §2 Основные функции и процедуры работы с графикой в PascalABCNet Для рисования в PascalABCNET необходимо запустить специальный модуль GraphABC, использование специальных функций и процедур помогут нарисовать точку, отрезок, окружность, прямоугольник и другие фигуры: SetPixel(x,y,color) - Закрашивает один пиксел с координатами (x,y) цветом color LineTo(x,y) - рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y) Line(x1,y1,x2,y2) - рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2) SetPenColor(color) - устанавливает цвет пера, задаваемый параметром color SetPenWidth(n) - устанавливает ширину (толщину) пера, равную n пикселям Rectangle(x1,y1,x2,y2) - рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2) FloodFill(x,y,color) - заливает область одного цвета цветом color, начиная с точки (x,y) SetBrushColor(color) - устанавливает цвет кисти Заливка кистью распространяется на замкнутый контур, описание которого следует за процедурой установки цвета кисти Ellipse(x1,y1,x2,y2) - рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2) Circle(x,y,r) - рисует окружность с центром в точке (x,y) и радиусом r Arc(x,y,r,a1,a2) - Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 - вещественные, задаются в градусах и отсчитываются против часовой стрелки) Таблица1 Цветовая гамма Pascal ABCNet
Графические примитивыprocedure Arc(x, y, r, angle1, angle2: real; c: Color); Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенную между двумя лучами, образующими углы angle1 и angle2 с осью OX, цветом c procedure Circle(x,y,r: real; c: Color); Рисует окружность с центром в точке (x,y), радиусом r и цветом c procedure DrawCircle(x,y,r: real; c: Color); Рисует контур окружности с центром в точке (x,y), радиусом r и цветом c procedure DrawCircle(p: Point; r: real; c: Color); Рисует контур окружности с центром в точке p, радиусом r и цветом c procedure DrawEllipse(x,y,rx,ry: real; c: Color); Рисует контур эллипса с центром в точке (x,y), радиусами rx и ry и цветом c procedure DrawPixels(x,y: real; pixels: array [,] of Color; px,py,pw,ph: integer); Рисует прямоугольную область (px,py,pw,ph) двумерного массива пикселей pixels начиная с левого верхнего угла с координатами (x,y) procedure DrawPolygon(points: array of Point; c: GColor); Рисует контур многоугольника, заданного массивом точек и цветом procedure DrawRectangle(x,y,w,h: real; c: Color); Рисует контур прямоугольника с координатами вершин (x,y) и (x+w,y+h) цветом c procedure DrawSector(x, y, r, angle1, angle2: real; c: Color); Рисует контур сектора окружности с центром в точке (x,y) и радиусом r, заключенного между двумя лучами, образующими углы angle1 и angle2 с осью OX, цветом c procedure Ellipse(p: Point; rx,ry: real; c: Color); Рисует эллипс с центром в точке p, радиусами rx и ry и цветом внутренности c procedure FillCircle(x,y,r: real; c: Color); Рисует внутренность окружности с центром в точке (x,y), радиусом r и цветом c procedure FillEllipse(x,y,rx,ry: real; c: Color); Рисует внутренность эллипса с центром в точке (x,y), радиусами rx и ry и цветом c procedure FillEllipse(p: Point; rx,ry: real; c: Color); Рисует внутренность эллипса с центром в точке p, радиусами rx и ry и цветом c procedure FillRectangle(x,y,w,h: real; c: Color); Рисует внутренность прямоугольника с координатами вершин (x,y) и (x+w,y+h) цветом c procedure FillSector(x, y, r, angle1, angle2: real; c: Color); Рисует внутренность сектора окружности с центром в точке (x,y) и радиусом r, заключенного между двумя лучами, образующими углы angle1 и angle2 с осью OX, цветом c procedure Line(x,y,x1,y1: real; c: Color); Рисует отрезок прямой от точки (x,y) до точки (x1,y1) цветом c procedure LineOn(dx,dy: real); Рисует отрезок от текущей позиции до точки, смещённой на вектор (dx,dy) Текущая позиция переносится в новую точку procedure Lines(a: array of (Point,Point); c: Color); Рисует отрезки, заданные массивом пар точек, цветом c procedure MoveOn(dx,dy: real); Перемещает текущую позицию рисования на вектор (dx,dy) procedure MoveRel(dx,dy: real); Перемещает текущую позицию рисования на вектор (dx,dy) procedure MoveTo(x,y: real); Устанавливает текущую позицию рисования в точку (x,y) procedure Pie(x, y, r, angle1, angle2: real); Рисует сектор окружности с центром в точке (x,y) и радиусом r, заключенный между двумя лучами, образующими углы angle1 и angle2 с осью OX procedure PolyLine(points: array of Point; c: Color); Рисует ломаную заданную массивом точек и цветом procedure Rectangle(x,y,w,h: real; c: Color); Рисует прямоугольник с координатами вершин (x,y) и (x+w,y+h) цветом c procedure Sector(x, y, r, angle1, angle2: real; c: Color); Рисует сектор окружности с центром в точке (x,y) и радиусом r, заключенный между двумя лучами, образующими углы angle1 и angle2 с осью OX, цветом c procedure SetPixel(x,y: real; c: Color); Рисует пиксел в точке (x,y) цветом c procedure SetPixels(x,y: real; w,h: integer; f: (integer,integer)->Color); Рисует прямоугольник пикселей размера (w,h), задаваемых отображением f, начиная с левого верхнего угла с координатами (x,y) Подпрограммы для работы с перомРисование линий осуществляется текущим пером Доступ к свойствам текущего пера можно осуществлять как в процедурном, так и в объектно-ориентированном стиле
Кроме этого, можно изменять свойства текущего пера через объект Pen Класс Picture графического рисункаКласс Picture представляет собой графический рисунок модуля GraphABC и является надстройкой над типом SystemDrawingBitmap Он имеет свойство прозрачности, которое можно включать/выключать, а также возможность непосредственного рисования на себе всех графических примитивов
Подпрограммы для работы с координатами графического окнаДоступ к свойствам координат графического окна можно осуществлять как в процедурном, так и в объектно-ориентированном стиле Процедуры и функции для изменения системы координат окна приведены ниже:
Можно также изменять свойства системы координат графического окна через объект CoordinateПодпрограммы режимов рисования
§3Работа с графическим модулем средствами Pascal ABCNet В рамках третьего параграфа было решено создать графический объект "Домик" при помощи инструментов модуля GraphABCNet1Для этого необходимо подключить этот модуль GraphABC с помощью uses Program Domik; uses Graphabc; //подключение модуля GraphABC 2После begin настраивается наша сцена: Рис2Настройка окна программы На рисунке 2 изображен процесс настройки окна при помощи свойства SetWindowWidth будет.. настраиватся ширина, при помощи SetWindowHeight будет настраиваться высота 3Настраиваем шрифт Рис3 Настройка шрифта текста "Домик" На рисунке 3 изображен процесс настройки текста при помощи свойства SetPenWidth задается толщина пера,SetFontSize задается размер шрифта,SetFountColor(clRed)настраивается цвет шрифта,SetFountStule(fsBold) настраивается стиль шрифта 4Выводим на форму текст TextOut(100,100,'Домик'); //текст 5Задаем параметры окну Рис4Прорисовка окна На рисунке 4 изображен процесс прорисовки окна при помощи свойства Rectangle и Circle 6Задаем цвет окну Рис5Заливка окна На рисунке 5 изображен процесс заливки окна при помощи свойства SetBrushColor 7Далее строится сам домик Рис6Настройка параметров домика На рисунке 6 изображен процесс настройки параметров домика при помощи свойства Line задаются параметры окна,крыши и трубы Рис7 Домик Изображение домика создавалось при помощи базовых процедур библиотеки GraphABC Далее будет описан пример прорисовки другой фигуры2 Программа Человечек 1Для этого опять же понадобиться подключить этот модуль GraphABC с помощью uses Program Figurka; uses GraphABC; 2После begin настраивается наша сцена: Рис8 Настройка параметров сцены На рисунке 8 изображен процесс настройки параметров человечка при помощи свойства SetWindowSize задаются размеры графического окна, SetPenWidth устанавливается стиль пера, SetBrushColor(clFuchsia) настраивается цвет кисти 3Создаем саму фигурку Рис9Человечек На рисунке 9 изображен человечек при помощи свойств Circle задаются параметры окружности, Line задаются параметры линии, Rectangle задаются параметры прямоугольнику Возможности PascalАВСNet в данной версии имеет очень много преимуществ по сравнению с предыдущими версиями PascalАВСNet содержит обширный набор типов констант и функций для управления графическим режимом работы экрана объединенных в стандартный библиотечный модуль Graph С помощью подпрограмм, входящих в данный модуль, можно создавать сложные графические изображения, основанные на использовании разнообразных геометрических фигур При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями(образцами) закраски Для вывода текстовых надписей на графический экран могут быть использованы четыре штриховых и один матричный шрифт Преимущества модуля граф 1Модуль GraphABC основан на графической библиотеке GDI+, но запоминает текущие перо, кисть и шрифт, что позволяет не передавать их в качестве параметров при вызове графических примитивов К свойствам пера, кисти и шрифта можно получать доступ как в процедурном, так и в объектном стиле Например, для доступа к цвету текущего пера используется процедура SetPenColor(c) и функция PenColor, а также свойство PenColor 2 В модуле GraphABC можно управлять самим графическим окном и компонентом GraphABCControl, на котором осуществляется рисование По умолчанию компонент GraphABCControl занимает всю клиентскую часть графического окна, однако, на графическое окно можно добавить элементы управления, уменьшив область, занимаемую графическим компонентом (например, так сделано в модулях Robot и Drawman) 3 Для работы с рисунками используется класс Picture, позволяющий рисовать на себе те же графические примитивы, что и на экране Режим блокировки рисования на экране (LockDrawing) позволяет осуществлять прорисовку лишь во в не экранном буфере, после чего с помощью метода Redraw восстанавливать все графическое окно Данный метод используется для ускорения анимации и создания анимации без мерцания 4 В модуле GraphABC определен ряд констант, типов, процедур, функций и классов для рисования в графическом окне Они подразделяются на следующие группы: Графические примитивы Функции для работы с цветом Цветовые константы Действия с пером: процедуры и функции Действия с пером: объект Pen Стиль пера Действия с кистью: процедуры и функции Действия с кистью: объект Brush Стили кисти Стили штриховки кисти Действия со шрифтом: процедуры и функции Действия шрифтом: объект Font Стили шрифтом Действия с рисунками: класс Picture Действия с графическим окном: процедуры и функции Действия с графическим окном: объект Window Действия с системой координат: процедуры и функции Действия с системой координат: объект Coordinate Блокировка рисования и ускорение анимации Режимы рисования События GraphABC Виртуальные коды клавиш Перенаправление ввода-вывода Типы и переменные модуля GraphABC Color = SystemDrawingColor; Тип цвета Point = SystemDrawingPoint; Тип точки GraphABCException = class(Exception) end; Тип исключения GraphABC RedrawProc: procedure; Процедурная переменная перерисовки графического окна Если равна nil, то используется стандартная перерисовка DrawInBuffer: boolean; Следует ли рисовать во в не экранном буфере Заключение Данный курсовой проект помог прояснить некоторые теоретические и практические вопросы, связанные со средой программирования PascalABCNET, а также с графическим модулем данной среды программирования При написании курсового проекта рассматривался вопрос создания графических изображений в среде программирования PascalАВСNet Благодаря подробному описанию создания графических объектов, курсовой проект является наглядным примером по созданию графических рисунков и может служить вспомогательным средством создания любых объектов графики в графической среде языка программирования PascalАВСNet программ для начинающих программистов Как видно из анализа полученных результатов можно наглядно посмотреть, какие объекты изображения можно получить в графической среде языка PascalАВСNet Для программистов и для тех, кто только начал изучать среду программирования языка PascalАВСNet следует обратить внимание на приложение, в котором наглядно показаны все команды, которые были использованы при создании мультипликационного персонажа «Домик» «Человечек» В ходе исследования изучили: Основные понятия графики, функции и процедуры, возможности создания графических изображений в среде программирования PascalАВСNet В курсовом проекте был приведен краткий обзор программы PascalABCNET, рассмотрена ее структура, основные примитивы, а также более подробно рассмотрен графический модуль GraphАВС Практическая значимость данного проекта довольно велика, тк работа с графикой очень распространена и основной сферой использования графического модуля является - обучение Полученные при исследовании знания и навыки будут полезны нам при дальнейшей работе в PascalАВСNet, а также при работе с другими языками программирования Список использованной литературы1 ЛДАубакиров Языки программирования Астана, 2017г, 214c 2 А Н Мудров Программирование М, 2016г,125c 3 Программирование С Симонович, Г Евсеев, Москва: АСТ - ПРЕСС книга 2015г,300c 4 Практика программирования, Ю Кетков, А Кетков, СПб: БХБ/ Петербург, 2015г,256c 5 Паскаль для школьников С М Кашаев, Л В Шерстнева - Москва, БХВ-Петербург, 2017 г,112c 6 Информатика(Базовый курс) С В Симонович, СПб: Питер, 2016г,200c 7 Основы программирования: С Окулов - Москва, Бином Лаборатория знаний, 2018 г,154c 8 Языки программирования Концепции и принципы: В Ш Кауфман - Москва, ДМК Пресс, 2017 г,145c 9 Турбо Паскаль с графикой для персональных компьютеров/Перс польск ДИЮренкова М:Мфшиностроение,2019,135c 10 Основы программирования в задачах и примерах, А В Милов, Харьков: ФОЛИО, 2017г,160c 11 Практикум по программированию на языке Паскаль, Касторнов А Ф, Касторнова В А , Москва, 2019,180c 12 http://pascalcoderru/ 13 http://saasslattutby/Grafika_Pascal/index16ht m 14 http://wwwinformancerru /uncategorized/grafika-v-t urbo-pascal/ 15 http://life-progru Приложение 1 Program Domik; uses Graphabc; //подключение модуля GraphABC begin SetWindowWidth(800); //ширина окна программы SetWindowHeight(600); //высота окна программы SetPenWidth(3); //толщина пера SetFontSize(18); //размер шрифта SetFontColor(clRed); //цвет шрифта SetFontStyle(fsBold); //жирный стиль шрифта TextOut(100,100,'Домик'); //текст Rectangle(200, 300, 600,600); //дом Circle(400,225, 40); //круг SetBrushColor(clyellow); //цвет заливки окна FillRect(300, 400,500,500); //процедура заливки окна rectangle(300,400,500,500); //окно Line(400,400,400,500); // окно Line(300,450,500,450); //окно Line(200,300,400,150); //крыша Line(400,150,600,300); //крыша Line(480,210,480,160); //труба Line(480,160,520,160); //труба Line(520,160,520,240); //труба end Приложение 2Program Figurka; uses GraphABC; begin SetWindowSize(500, 500); //задаем размер графического окна SetPenWidth(3); //устанавливаем стиль пера SetBrushColor(clFuchsia); //устанавливаем цвет кисти Circle(225,160,50); //рисуем окружность Line(225,160,225,180); //рисуем линии Line( 210,190,240,190); Line( 225,210,225,250); Line( 100,100,200,260); Line( 200,260,400,260); Line( 210,350,200,480); Line(240,350,250,480); Rectangle(200,230,250,350); //рисуем прямоугольник SetBrushColor(clLime); FillRect(0, 480,500,500); //рисуем закрашенный прямоугольник SetBrushColor(clWhite); Circle(205,150,10); Circle(245,150,10); end |