Автор работы: Пользователь скрыл имя, 16 Декабря 2014 в 15:43, курсовая работа
Цель исследования– изучить основы языка программирования, научиться создавать графические изображения на языке Turbo Pascal.
Задачи исследования :
1.изучить структуру программы
2. освоить основные графические процедуры и функции
Объект исследования: программа Turbo Pascal
Интерфейс |
Назначение | |
Управление графическим режимом | ||
Procedure CloseGraph; |
Закрывает графический режим | |
Procedure DetectGraph (Var GrDriver, GrMode:Integer); GrDriver-код драйвера, GrMode-код графического режима |
Определяет рекомендуемые к применению для данного компьютера графические драйвер и режим | |
Function GetDriverName:String; Значение функции-имя используемого драйвера |
Определяет имя файла с используемым графическим драйвером | |
Function GetGraphMode:Integer; Значение функции-код графического режима |
Определяет код используемого графического режима | |
Function GetMaxName:Integer; Значение функции-имя используемого графического режима |
Определяет имя используемого графического режима | |
Function GetMaxMode:Integer; Значение функции-максимальное значение кода режима |
Определяет максимальное значение кода графического режима для используемого драйвера | |
Procedure GetMaxRange (GrDriver:Integer; Var LoMode, HiMode:Integer); GrDriver-код графического режима; LoMode, HiMode-наименьшее и наибольшее значения кода графического режима для данного драйвера |
Определяет минимальное и максимальное значения кода графического режима для указанного при обращении драйвера | |
Procedure GraphDefaults; |
Устанавливает графический указатель в начало координат и переустанавливает графическую систему | |
Function GraphErrorMsg (ErrorCode:Integer):String; ErrorCode-код графической ошибки. Значение функции - текстовое сообщение о характере ошибки |
Дает стоку – сообщение об ошибке графического режима по коду ошибки | |
Function GraphResult:Integer; Значение функции-код ошибки |
Определяет, произошла ли ошибка при исполнении процедур модуля | |
Procedure InitGraph (var GrDriver, GrMode:Integer, PathToDriver:String); GrDriver-код драйвера, GrMode-код графического режима; PathToDriver-путь к файлу используемого драйвера |
Устанавливает заданный графический режим | |
Function
InstallUserDriver (Name:String; AutoDetectPtr:Pointer): Name-имя файла графического драйвера, AutoDetectPtr-указатель на процедуру, определяющую успешность запуска драйвера. Значение функции-цифровой код установленного драйвера |
Инсталлирует пользовательский драйвер графического режима | |
Procedure RegisterBGIDriver (Driver:Pointer):Integer; Driver-указатель на драйвер |
Регистрирует драйвер графической системы | |
Procedure RestoreCrtMode; |
Закрывает графический режим и восстанавливает текстовый режим, установленный раннее | |
Procedure SetGraphMode (GrMode:Integer); GrMode-код графического режима |
Устанавливает другой графический режим без изменения драйвера | |
Управление экраном и окнами | ||
Procedure ClearDevice; |
Очищает экран, сбрасывает все графические установки к значениям по умолчанию, устанавливает графический указатель в положение (0,0) | |
Procedure ClearViewPort; |
Очищает экран, устанавливая фон, заданный в SetBkColor | |
Function GetMaxX:Integer; Значение функции-максимальная координата Х |
Определяет коэффициенты, характеризующие неодинаковость линейного расстояния между пикселями по осям X и Y | |
Function GetMaxY:Integer; Значение функции-максимальная координата Y | ||
Function GetBkColor:Word; Значение функции-код цвета фона |
Определяет установленный цвет фона | |
Экран и окна | ||
Procedure GetVievSettings (VarVievPort: VievPortType); VievPort-параметры текущего окна |
Запрашивает текущие параметры окна и отсечения | |
Procedure SetBkColor (Color: Word); Значение функции-код цвета фона |
Устанавливает цвет фона | |
Procedure SetActivePage (Page:Word); Page – номер активной страницы |
Устанавливает активную графическую страницу | |
Procedure SetAspectRatio ( Var Xasp, Yasp:Word); Xasp, Yasp – коэффициенты по осям X и Y |
Изменяет масштабный коэффициент отношения сторон экрана | |
Procedure SetVisualPage (Page:Word); Page – номер страницы |
Устанавливает номер видимой графической страницы | |
Procedure SetVievPort (x1, y1, x2, y2:Integer; Clip:Boolean); (x1, y1) и (x2, y2) – координаты противоположных углов окна; Clip – определяет, отсекать ли изображение за пределами окна или нет |
Устанавливает визуальный порт (окно) для вывода графического изображения | |
Function GetColor:Word; Значение функции – код цвета |
Возвращает текущий цвет (установленный SetColor) | |
Procedure GetDefaultPalette (VarPalette:PaletteType); Palette - палитра (массив типа PaletteType) |
Определяет, какая палитра действует в режиме по умолчанию | |
Function GetMaxColor:Word; Значение функции – максимальный код цвета |
Определяет максимальный код цвета в установленном режиме | |
Procedure GetPalette (Var Palette:Palette Type); Palette – палитра (массив типа PaletteType) |
Определяет, какая палитра установлена | |
Function GetPaletteSize:Word; Значение функции – число цветов в палитре |
Возвращает размер таблицы палитры | |
Procedure SetAllPalette (Var Palette:PaletteType); Palette – палитра (массив типа PaletteType) |
Устанавливает все цвета палитры | |
Procedure SetColor (Color:Word); Color - код цвета |
Устанавливает цвет для линий | |
Procedure SetPalette (ColorNum, Color:Word); ColorNum – код заменяемого цвета; Color – код нового цвета |
Устанавливает один новый цвет в палитре | |
Procedure SetRGBPalette (ColorNum, RedValue, GreenValue, BlueValue:Word); ColorNum – код устанавливаемого в палитре цветов; RedValue, GreenValue, BlueValue – интенсивность красного, зеленого и синего в этом цвете |
Устанавливает в палитру цвет, заданный тремя компонентами: красным, зеленым и синим | |
Управление указателем | ||
Function GetX:Integer; GetX – координата Х указателя |
Возвращает координату Х текущего указателя | |
Function GetY:Integer; GetY – координата Y указателя |
Возвращает координату Y текущего указателя | |
Procedure MoveTo (X:Integer; Y:Integer); (X,Y) – координаты точки экрана |
Перемещает указатель в точку, заданную координатами X,Y | |
Procedure MoveRel (dx:Integer; dy:Integer); dx, dy – вектор приращений координат точки экрана |
Перемещает указатель в точку, координаты которой отличаются от текущих координат на значения dx, dy | |
Шаблоны; закраска областей | ||
Procedure FloodFill (X, Y:Integer; ColorBorder:Word); (X,Y) – координаты точки, вокруг которой идет закраска; ColorBorder – цвет, обозначающий границы области закраски |
Закрашивает произвольную область по заданным шаблону и цвету вокруг заданной точки до границ, обозначенных определенным цветом | |
Procedure GetFillPattern (Var FillPattern:FillPatternType); FillPattern – массив типа FillPatternType, содержащий информацию о шаблоне |
Определяет установленный тип шаблона | |
Procedure GetFillSettings (Var FillInfo: FillSettingsType); FillInfo – запись типа FillSettingsType, содержащая информацию о шаблоне |
То же | |
Procedure GetLineSettings (Var LineInfo: LineSettingsType); LineInfo – запись типа LineSettingsType, содержащая информацию о типе линии |
Определяет установленный тип линии | |
Procedure GetGraphBufSize (Size:Word); Size – размер буфера |
Изменяет размер буфера для функций заполнения | |
Procedure SetFillPattern (Pattern:FillPatternType; Color:Word); Pattern – массив типа FillPatternType, содержащий информацию о шаблоне; Color – цвет раскраски |
Устанавливает шаблон и цвет раскраски | |
Procedure SetFillStyle (Pattern, Color:Word); Pattern – код стандартного шаблона; Color - цвет раскраски |
Устанавливает один из стандартных шаблонов и цвет раскраски | |
Procedure SetLineStyle (LineStyle, Pattern, Thickness:Word); LineStyle – код стиля линии; Pattern – собственный шаблон линии; Thickness – толщина линии |
Устанавливает цвет линии как один из стандартных или по собственному шаблону | |
Изображение геометрических фигур | ||
Procedure Arc (X, Y:Integer; StartAngle, EndAngle, R:Word); (X, Y) – координаты центра окружности; StartAngle, EndAngle – начальный и конечный углы дуги окружности в градусах (0,359); R – радиус окружности в пикселях в направлении Х |
Изображает дугу окружности. Процедура учитывает неодинаковость масштаба по осям | |
Procedure Bar (x1, y1, x2, y2:Integer); (x1,y1) и (x2,y2) – координаты левого верхнего и правого нижнего углов прямоугольника |
Изображает окрашенный прямоугольник без контура | |
Procedure Bar3D (x1, y1, x2, y2:Integer; Depth:Word; Top:boolean); (x1, y1) и (x2, y2) – координаты левого верхнего и правого нижнего углов параллелепипеда, Depth – его глубина, Top – определяет, изображать ли верхнюю грань фигуры (true - изображать) |
Изображает трехмерный прямоугольный параллелепипед с заполнением передней грани. Верхняя грань может изображаться или не изображаться | |
Procedure Circle (x, y:Integer; R:Word); (x, y) – координаты центра окружности; R – радиус окружности в пикселях в направлении Х |
Изображает окружность. Процедура учитывает неодинаковость масштаба по осям | |
Procedure DrawPoly (NumPoints:Word; Var PolyPoints); NumPoints – число точек, задающих ломанную линию; PolyPoints – массив точек (элементов типа Point), задающих ломанную линию |
Изображает ломанную линию, проходящую через данный массив точек | |
Procedure Ellipse (X, Y:Integer; StartAngle, EndAngle, Rx, Ry:Word); (X, Y) – координаты центра эллипса; StartAngle, EndAngle – начальный и конечный углы дуги эллипса в градусах (0,359); Rx, Ry – полуоси эллипса в пикселях в направлении Х и Y |
Изображает дугу эллипса , полуоси которого в направлениях Х и Y заданны в пикселях | |
Procedure GetArcCoords (Var ArcCoords: ArcCoordsType); ArcCoordsType – запись, содержащая координаты дуги |
Возвращает координаты дуги, изображенной процедурами Arc и Ellipse | |
Procedure FillEllipse (X, Y:Integer; Rx, Ry:Word); (X, Y) – координаты центра эллипса; Rx, Ry – полуоси эллипса в пикселях в направлениях X и Y |
Чертит закрашенный эллипс, полуоси которого в направлениях X, Y заданы в пикселях | |
Procedure FillPoly (NumPoints:Word; Var PolyPoints); NumPoints – число точек, задающих ломанную линию; PolyPoints – массив точек (элементов типа Point), задающих ломанную линию |
Изображает закрашенный многоугольник, заданный массивом вершин | |
Function GetPixel (x, y:Integer):Word; (x, y) – координаты точки, результат – цвет точки |
Возвращает цвет заданной точки | |
Procedure Line (x1, y1, x2, y2:Integer); (x1, y1), (x2, y2) – координаты конечных точек отрезка прямой |
Чертит отрезок прямой по двум заданным конечным точкам | |
Procedure LineRel (dx, dy:Integer); (dx, dy) – смещение конечной точки относительно начального положения указателя |
Чертит отрезок прямой от положения указателя до точки, смещенной относительно указателя на заданное значение | |
Procedure LineTo (x, y:Integer); (x, y) – координаты точки, в которую проводится отрезок |
Чертит отрезок прямой от точки положения указателя до заданной точки | |
Procedure Rectangle (x1, y1, x2, y2:Integer); (x1, y1), (x2, y2) – координаты противоположных углов прямоугольника |
Чертит контур прямоугольника | |
Procedure Sector (X, Y:Integer; StartAngle, EndAngle, Rx, Ry:Word); (X, Y) – координаты центра эллипса; StartAngle, EndAngle – начальный и конечный углы дуги эллипса в градусах (0,359); Rx, Ry – полуоси эллипса в пикселях в направлениях X и Y |
Изображает закрашенный сектор эллипса, ограниченный углами от StartAngle до EndAngle. Заполняется сектор от минимального значения углов до максимального независимо от их следования | |
Procedure PieSlice (X, Y:Integer; StartAngle, EndAngle, Rx:Word); (X, Y) – координаты центра эллипса; StartAngle, EndAngle – начальный и конечный углы дуги эллипса в градусах (0,359); Rx – радиус окружности в пикселях в направлении X |
Изображает закрашенный сектор круга, ограниченный углами от StartAngle до EndAngle, радиус круга, заданный в пикселях в направлении Х, и учитывает масштаб изображения по осям. Заполняется сектор от минимального значения углов до максимального независимо от их следования | |
Procedure PutPixel (X, Y:Integer, Color:word); (X, Y) – координаты точки; Color – цвет точки |
Окрашивает точку экрана в заданный цвет | |
Вывод текстов | ||
Procedure GetTextSettings (VarTextInfo: TextSettingsType); TextInfo – запись, содержащая действующие установки вывода текста |
Определяет установки вывода текста | |
Procedure OutText (Text:String); Text – выводимая строка текста |
Выводит текст на графический экран, начиная с позиции графического указателя, которая смещается на ширину выводимого текста | |
Procedure OutTextXY (X, Y:Integer; Text: String); (X, Y) – координаты точки, к которой привязывается выводимый текст; Text – выводимая строка текста |
Выводит текст на графический экран относительно заданной точки с учетом используемого типа юстировки | |
Function InstallUserFont (FontFileName:String):Integer; FontFileName – имя файла, содержащего шрифт; Результат – номер кода (код) установленного шрифта |
Инсталлирует новый шрифт | |
Procedure RegisterBGIFont (Font:Pointer); Font – указатель на шрифт |
Регистрирует шрифты для графической системы | |
Procedure SetTextJustify (Horiz, Vert:Word); Horiz, Vert – коды привязки текста по горизонтали и вертикали |
Устанавливает тип привязки текста к точке вывода по горизонтали и вертикали | |
Procedure SetTextStyle (Font, Direction, CharSize:Word); Font – тип используемого шрифта; Direction – направление вывода надписи; CharSize – размер символов |
Устанавливает стиль выводимого текста | |
Procedure SetUserCharSize (MultX, DivX, MultY, DivY: Word); MultX, DivX, MultY, DivY – коэффициенты умножения (Mult) и деления (Div) по осям Х и Y соответственно |
Выполняет масштабирование шрифтов с произвольным дробным масштабом | |
Function TextHeight (Text:String):Integer; Text – выводимая строка текста; Результат – высота текста в пикселях |
Определяет высоту текстовой строки при заданных установках стиля | |
Function TextWidth (Text:String):Integer; Text – выводимая строка текста; Результат – длина текста в пикселях |
Определяет длину текстовой строки при заданных установках стиля | |
Копирование части экрана | ||
Procedure GetImage (x1, y1, x2, y2:Integer; Var BitMap:Pointer); (x1, y1) и (x2, y2) – координаты противоположных углов прямоугольника, ограничивающего копируемую область экрана; BitMap – указатель области памяти, отведенной для хранения данного изображения |
Копирует в ОЗУ прямоугольную область экрана | |
Function ImageSize (x1, y1, x2, y2:Integer) :Word; (x1, y1) и (x2, y2) – координаты противоположных углов прямоугольника, ограничивающего область экрана. Результат – объем информации в байтах |
Определяет размер в байтах памяти, необходимой для хранения прямоугольной области экрана | |
Procedure PulImage (x, y:Integer; Var BitMap:Pointer; BitBit:Word); (x, y) – координаты левого верхнего угла для выводимого изображения; BitMap – указатель области памяти; BitBit – код логической операции |
Выводит изображение из области памяьт ЭВМ в указанную область экрана с заданной логической операцией наложения нового изображения на старое |