Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Fortran для персонального компьютера

..pdf
Скачиваний:
22
Добавлен:
15.11.2022
Размер:
12.5 Mб
Скачать

Наименование

Предназначение

setviewport

Позиционирование базы координат порта

setvisualpage

Установка видимой страницы

sctwindow

Определение системы оконных

unregisterfonts

координат

Отключение шрифтов

wrapon

Изменение режима прерывания строки

Примечание: (*) соответствует режиму оконных ко­ ординат, детальное описание которого содержится в последу­ ющих разделах.

6.1.1Подключение графичекой библиотеки

Графические процедуры представляют собой функции и подпрограммы, выполняющие операции рисования линий, прямоугольников, элипсов и других графических фигур на экране. Шрифтовые процедуры" позволяют создавать текст различного типа ("стиля"), размера и цвета.

Каждая программа, использующая графическую биб­ лиотеку, должна также явно объявлять любые процедуры. Это означает, что пользователь должен либо написать интерфейс для каждого вызова процедуры, либо интерфейс для включае­ мых файлов FGRAPH.FI и TORAPH.FD.

Файл FGRAPH.FI содержит объявления процедур вопе­ раторах INTERFACE; включаемый файл FGRAPH.FD содер­ жит объявления структурных и символических констант и объявлений операторов EXTERNAL для графических проце­ дур. Совместно они содержат объявления, необходимые для доступа ко всем библиотечным графическим процедурам. Для использования их следует включить файл FGRAPH.FI в нача­ ло каждого исходного файла программы пользователя, а файл FGRAPH.FD в каждую подпрограмму, которая вызывает гра­

фическую процедуру.

Исполнительная библиотека GRAPHICS.LIB содержит процедуры, соответствующие различным заданиям, выполня­ емым при разработке графических программ, каждому^ зада­ нию соответствует своя группа процедур графической биб­ лиотеки. Дальнейш ее изложение основывается на классификации процедур графической библиотеки в соот­ ветствии с указанными в табл.6.2 заданиями.

6.1.2Установка режима и среды изображения

После подключения графической библиотеки следую­ щим шагом при разработке графических программ является

установка видеорежима, который разрешает выполнение гра­ фических процедур. Процедуры, позволяющие пользователю определить способ отображения текста и графических образов, определяющие характеристики среды изображения, создаю­ щие операционные режимы (текстовый или графический) и управляющие курсором, сведены в табл.6.3.

страницы, соответственно, в конфигурации, которая поддер­ живает множественные видеостраницы.

Процедура setvideomode осуществляет выбор опе­ рационного режима (режима разрешения) монитора.

Процедура settextrows устанавливает число отображае­ мых строк текста. Процедура setvideomoderows "объединяет”

две указанные выше функции, устанавливает режим отобра­ жения и число допустимых строк текста.

6.1.3Установка палитры

Каждому цвету на экране ставится в соответствие ин­ декс цвета. Для ассоциирования индекса цвета с конкретным цветом на экране в графической библиотеке используется кон­ цепция "палитры". Процедуры работы с палитрами назначают цвета функциям и подпрограммам, которые выполняют рисо­ вание образов в цвете. Они также могут изменять цвета эле­ ментов, уже нарисованных на экране. Процедуры в табл.6.4 определяют соответствие между цветами, отображаемыми на экране, и индексами.

 

Таблица 6.4

Наименование

Предназначение

remapallpalette

Назначение индекса цвета для всех цветов

remappalette

Назначение индекса заданному цвету

selectpalette

Выбор предопределенной палитры

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

Большинство видеорежимов поддерживают только одну палитру. Если пользователь выбирает графику среднего разре­ шения" (задаются метакоманды $MK ES4COLOR и л и $MRESNOCOLOR), то возможно использование нескольких

палитр.

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

Мониторы типа EGA и VGA также обеспечивают воз­ можность повторного отображения палитры, при котором раз­ решается отображение любого индекса цвета в любое значение цвета. Эти возможности реализуются процедурами remappalette (отображение одного значения цвета) и remapallpalette (отображение всей палитры).

6.1.4Установка графических координат

В компиляторе язы^а ФОРТРАН распознаются три ус­

тановки координат:

1. Фиксированные "физические координаты", опред ляемые техническими средствами и используемыми процеду­ рами конфигурирования. Физическая база координат (х = 0, у

8 Заказ №ZO%

113

бой точки при помощи процедур getcurrentposition и getcurrentposition_w.

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

Процедура getphyscoord выполняет преобразование лю­ бых "координат порта просмотра", а процедура getviewcoord выполняет процедуру трансляции физических координат в "координаты порта просмотра".

Аналогично, процедура getviewcoord_w изменяет "окон­ ные координаты" на координаты порта просмотра", а проце­ дура getwindowcoord выполняет обратное преобразование.

Процедура setcliprgn определяет ограниченную актив­ ную область изображения на экране ("область клипа").

Процедура setviewport выполняет аналогичную функ­ цию а также изменяет установку базы координат порта прос­ мотра; база устанавливается в левый верхний угол "области клипа".

6.1.5Установка атрибутов фигур

Процедуры вывода, выполняющие операции рисования графических образов не специфицируют данные о цвете или стиле изображения линий. Они получают указанные данные измножества "атрибутов", устанавливаемых при помощи сле­ дующих процедур (табл.6.6).

 

Таблица 6.6

Наименование

Предназначение

getbkcolor

Возврат текущего цвета фона

getcolor

Возврат текущего цвета

getlinestyle

Возврат значения текущего стиля

 

изображения линий

getfillmask

Возврат текущей маски заполнения

 

цветом

setbkcolor

Установка текущего цвета фона

setcolor

Установка текущего цвета рисования

setfillmask

Установка текущей маски заполнения

 

цветом

setlinestyle

Установка текущего способа

 

изображения линий

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

 

Таблица 6.7

Наименование

Предназначение

arc

Изображение эллиптических дуг

clearscreen

Заполнение экрана текущим цветом фона

ellipse

Изображение эллипса или круга

floodfill

Заполнение области экрана текущим цве­

getcurrent-

том текущей маски

Возврат координат текущей позиции

position

графического вывода

getpixel

Возврат значения элемента изображения

lineto

Рисование линии с текущей позиции

moveto

графического вывода до заданной позиции

Перемещение текущей позиции графичес­

pie

кого вывода в заданную точку

Изображение сектора

rectangle

Изображение прямоугольника

setpixel

Установка значения элемента изобра­

 

жения

Примечание: Все указанные в табл.6.7 процедуры име­ ют свои аналоги для рисования в "оконных координатах" (например, arc и arc_w, pie и pie_w и т.д.)

6.1.7Отображение символов шрифтов

Графическая библиотека компилятора языка ФОРТ­ РАН поддерживает множество разнообразных шрифтов. Пос­ левыбора шрифта пользователь может уточнить значение ши­ риныстроки или характеристики текущего шрифта. В табл.6.8 приведены процедуры управления отображением символов

шрифтов.

Символы могут быть нарисованы одним из двух спосо­ бов: как битовые или "разрядно-отображенные" буквы (так называемая "картинка" буквы) или как "векторные’ символы (т.е. как последовательности линий идуг, образующих букву).

6.1.8Отображение текста

Следующие процедуры (табл.6.9) обеспечивают вывод наэкран текста как в графическом, так и в текстовом режимах. В отличие от стандартных операторов ввода/вывода перечисленные процедуры распознают границы окна вывода текста там, где реализованы окна.

Процедура outtext отображает строку на экран. Пользо­ ватель может возвратить или изменить текущий цвет текста

при помощи процедур gettextcolor и settextcolor, соответствен­ но.

Процедуры gettextposition и settextposition позволяют определять или изменять местоположение следующего фраг­ мента текста, выводимого на экран.

Во избежание непредсказуемого позиционирования текста при смешанном использовании процедур settextposition и outtext с оператором WRITE следует использовать дескрип­ тор преобразования в виде символа обратного слэша (подав­ ление комбинаций символов CR-LF) в соответствующем опе­ раторе FORMAT.

t Функция wrapon разрешает или запрещает автоматиче­ ское "прерывание строк". Если режим не установлен, то "длинное" слово в конце строки будет "разорвано", зачастую некорректным способом, и продолжено на следующей строке.

6.1.9Передача образов

Группа процедур (табл.6.10) getimage и putimage выпол­ няютоперации передачи графических образов между памятью и экраном.

Для хранения образа в памяти, прикладная программа выделяет буфер, размер которого в байтах определяется про­ цедурой imagesize.

В системах, поддерживающих многочисленные стра­ ницы, пользователь может передать графическую страницу в страницу памяти, отображая в то же время другую страницу. После завершения обработки страницы в памяти' можно отоб­ разить ее на экран и начать рисовать в памяти следующую страницу. Путем повторения этого процесса пользователь мо­ жет организовать анимацию объектов на экране.

 

Таблица 6.10

Наименование

Предназначение

getimage

Сохранение экранного образа в памяти

imagesize

Возврат значения размера образа в байтах

putimage

Восстановление образа из памяти на экран

Примечание: Все указанные в табл.6.10 процедуры имеют свои аналоги для использования в 'оконных координатах

(например, getimage и getimage_w и т.д.).

6.2Изображение графических элементов

Графика позволяет сделать экран пользователя более информативным. В данном разделе рассматриваются основ­ ные базовые элементы для создания широкого разнообразия всевозможных рисунков и графиков.