Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование в графическом режиме на языке ПаскальСодержание книги
Поиск на нашем сайте
При выводе на экран графической информации (линии, эллипсы, многоугольники, растровые изображения и др.) используется графический режим работы монитора, в котором изображение строится из пикселей (pixels) – точек на экране, каждая из которых может иметь свой цвет. Для разработки программ, работающих в графическом режиме, в системе программирования Turbo Pascal существует стандартный модуль GRAPH.TPU, содержащий константы, типы, процедуры и функции (более 50-ти). Кроме файла GRAPH.TPU для разработки программ в графическом режиме требуется графический драйвер Egavga.bgi (для адаптеров EGA и VGA), расположенные в папке ..\BGI системы. Там же, в файлах * .chr находятся векторные шрифты для графического режима. Следует отметить, что в дистрибутивном пакете системы Turbo Pascal эти шрифты не имеют русских букв, однако можно найти и русифицированные *.chr файлы, например, в системе Quattro Pro. Для работы в графическом режиме следует выполнить действия: - скопировать в каталог с файлом программы драйвер egavga.bgi; - в разделе описания используемых модулей указать Uses Graph; - описать две переменные целого типа Gd, Gm: Var Gd,Dm:integer; - задать автоматический режим настройки графического драйвера: Gd:=Detect; - для переключения в графический режим вызвать процедуру InitGraph: InitGraph(Gd,Gm,''); - выполнить вывод на экран графической информации; - для выхода из графического режима вызвать процедуру ClоseGraph; После переключения в графический режим вместо текстового курсора используется невидимый текущий указатель, который может быть установлен в определённой точке экрана с помощью задания графических координат. Для режима VGA 640´480 верхний левый угол экрана будет иметь координаты (0,0), а правый нижний угол (639,479). Пример 1. Наберите текст программы, рисующей 5 концентрических окружностей в центре экрана. Program Krug2; Uses Graph; Var Gd,Gm,rad,xc,yc:integer; begin Gd:=Detect; { функция InitGraph должна выполнить } InitGraph(Gd,Gm,''); { инициализация графического режима } if GraphResult <> 0 then { в случае ошибки инициализации } begin Writeln('Ошибка инициализации графического режима'); Writeln('В каталоге программы должен присутствовать Writeln('или укажите путь к нему в IniGraph(Gd,Gm,<путь>)'); Halt(1); end; Case Gd of { анализируем тип дисплея } { и вычисляем координаты центра экрана } 9: begin { VGA монитор } xc:=(640-1) div 2; yc:=(480-1) div 2; end; 3: begin { EGA монитор } xc:=(640-1) div 2; yc:=(350-1) div 2; end; end; for rad:=1 to 5 do Circle(xc,yc,rad*20); { рисуем окружности } Readln; CloseGraph; { возврат в текстовый режим } end. Ниже приведён перечень наиболее часто используемых процедур и функций для работы в графическом режиме. Function GetMaxX:Integer; Возвращает максимальную x -координату (разрешение по горизонтали) текущего графического режима Function GetMaxY:Integer; Возвращает максимальную y -координату (разрешение по вертикали) текущего графического режима Function GetX:Integer; Возвращает текущую x -координату указателя Function GetY:Integer; Возвращает текущую y -координату указателя Procedure PutPixel(x,y,color:Word); Выводит на экран точку с координатами (x,y) и цветом color Procedure SetColor(color:Word); Устанавливает цвет рисуемых далее линий Procedure SetBkColor(color: Word); Устанавливает цвет фона Procedure Line(xStart,yStart,xEnd,yEnd:Integer); Проводит прямую линию из точки (xStart,yStart) в точку (xEnd,yEnd) Procedure LineTo(xEnd,yEnd:Integer); Проводит прямую линию из текущего положения указателя в точку с координатами (xEnd,yEnd) Procedure MoveTo(x,y: Integer); Перемещает указатель в точку с координатами (x,y) Procedure Circle(x,y,Radius: Integer); Рисует окружность с центром в точке (x,y) и радиусом Radius Procedure Rectangle(x1,y1,x2,y2: Integer); Рисует прямоугольник с координатами левого верхнего и правого нижнего угла (x1,y1) и (x2,y2) соответственно Procedure Bar(x1,y1,x2,y2: Integer); Рисует закрашенный прямоугольник с координатами левого верхнего и правого нижнего угла (x1,y1) и (x2,y2) соответственно Procedure Ellipse(x,y, a1,a2, xRad,yRad: Integer); Рисует эллиптическую дугу с центром в точке (x,y), начальным и конечным углами a1 и a2 и радиусами по осям xRad, yRad; углы отсчитываются от положительного направления оси х в градусах Procedure FloodFill(x,y:integer; border:word); Закрашивает замкнутую область, внутри которой расположена точка (x,y), согласно текущему стилю заполнения. Параметр border задаёт цвет границы Procedure SetFillPattern(parttern:byte; color:word); Устанавливает тип закраски и её цвет. Тип закраски выбирается из списка: EmptyFill – сплошное заполнение цветом фона; SolidFill - сплошное заполнение заданным цветом; LineFill – заполнение горизонтальными линиями; LtSlashFill -диагональное заполнение (/ / /); LtBkSlashFill - обратное диагональное заполнение (\ \ \); XhatchFill – косое клетчатое заполнение Procedure SetLineStyle(Style,Pattern,color:word); задаёт стиль, палитру и толщину линий. Стили: Solidln - сплошная; Dotted - точечная; Dashed - пунктирная; Centerln - штрихпунктирная. Толщина линий: NormWidth – нормальная; ThickWidth – толстая. Параметр Pattern=0 Procedure OutTextXY(x,y:Integer; s:string); Выводит текстовую строку s начиная с точки с координатами (x,y) Простейшие примеры работы с процедурами и функциями графического режима содержатся в справочной системе Turbo Pascal. Полный список констант, типов, процедур и функций модуля GRAPH содержится также в файле Graph.int в папке ..\DOC. Задания
Тема 15
|
|||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 407; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.166.45 (0.008 с.) |