Дипломная работа: Визуализация инженерных и научных расчетов
Опишем процедуры APIAV, встраивание которых в приложение позволяет запускать AV, передавать ему массив, управлять изображением.
FAGL - подпрограммы.
Синтаксис подпрограммы | Описание |
faglClose(array,status) | Закрывает экземпляр AV. Если затем возникает потребность отобразить массив array снова, то достаточно вызвать лишь faglShow; вызова faglStartWatch выполнять не нужно |
faglEndWatch (array, status) | Удаляет массив array из списка отображаемых массивов и освобождает ресурсы, связанные с array и используемые подпрограммами библиотеки. |
faglGetShareName (array, filename, status) | Строка filename, возвращаемая этой подпрограммой, может быть передана процедурам Avis2D и AvisGrid как свойство FileName. |
faglHide(array, status) | Делает экземпляр AV невидимым. Экземпляр AV станет видимым, если затем вызвать faglShow. Однако если экземпляр AV создан посредством favStartViewer, то вместо faglShow следует употреблять favShowWindow |
faglLBound (array, lbnd, status) | Устанавливает левые границы измерений отображаемого массива в видах Data или GraphViewsAV. По умолчанию массив отображается с границами, равными единице. |
faglSaveAsFile (array, filename, status) | Сохраняет текущий массив в файле с расширением AGL. Такой файл может быть загружен и отображен в AV. |
faglShow (array, | Создает экземпляр AV и отображает данные |
status) | массива array. Так же делает экземпляр AV видимым. |
faglStartWatch (array, status) | Добавляет массив array в список отображаемых массивов и возвращает дескриптор hv, который используется для доступа к массиву другими подпрограммами библиотеки. Фактически faglStartWatch использует системные ресурсы для приведения array к виду, необходимому для faglShow. Чтобы освободить эти ресурсы, следует вызвать faglEndWatch. |
FaglUpdate(array, status) | Приводит в соответствие изображение с данными, хранящимися в массиве array. Употребляется, если приложение изменило отображаемый массив array с момента последнего вызова faglUpdate или faglShow и если есть необходимость обновить изображение. Если же экземпляр AV ассоциируется с массивом, созданным favStartViewer, а не faglShow, то вместо faglUpdate нужно вызвать favUpdate. |
Параметры fagl подпрограмм:
Имя | Смысл/вид | Тип. |
array | Имя отображаемого массива / входной | Числовой |
status | Статус вызова fagl-подпрограммы. В случае успеха равен нулю/ выходной | integer(4) |
filename | Строка, возвращаемая faglGetShareName/ выходной | CHARACTER(*) |
filename | Имя файла без расширения, если файл пишется в директорию, из которой вызвано приложение, либо полное имя файла / входной. | CHARACTER(*) |
lbnd | Массив ранга 1, размер которого равен рангу отображаемого массива / выходной | INTEGER(4) |
title | Строка, отображаемая в заголовке экземпляра AV / входной | CHARACTER(*) |
Для вызова приведенных выше подпрограмм в использующем их программном компоненте следует выполнить ссылку:
Useavdef ! Ссылка на модуль avdef.f90
Модуль AVDEF содержит интерфейсы fagl-подпрограмм.
Перечисленные подпрограммы обычно используются следующим образом:
1. до отображения массива array вызовите faglStartWatch с параметром array;
2. если необходимо отображать массив, имея нижнюю левую границу, отличную от единицы, примените faglLBound;
3. для отображения сообщения, сопровождающего выводимые данные, вызовите faglName;
4. для запуска AV и отображения массива array вызовите faglShow с первым параметром, равным array. AV будет функционировать до тех пор, пока не выполнена команда faglClose;
5. если хранимые массивом данные подверглись изменениям, то для их отображения вызовите faglClose;
6. для сохранения массива array в виде файла с расширением AGL (ArrayGraphingLanguage) вызовите faglSaveAsFile, использовав array в качестве первого параметра. При этом AV может быть некактивным;
7. при необходимости можно вызвать faglGetShareName и получить строку filename, позволяющую процедурам Avis2D и AvisGrid осуществлять доступ к памяти, занятой массивом.
8. после завершения просмотра массива вызовите faglEndWatch.
Для массивов отображаемых в AV рекомендуется использовать атрибут !DEC$ATTRIBUTESarray_visualizer :: array. Действие этого атрибута таково: память, занимаемая массивом array, используется и AV и приложением. При отсутствии атрибута будут созданы две области данных array и при каждом обновлении массива после вызова faglUpdate данные будут копироваться из области, принадлежащей приложению, в область, используемую AV.
Заметим, что DEC-атрибут ARRAY_VISUALIZER может быть применен только с динамическими объектами, т.е. объектами, обладающими атрибутом PIONTER или ALLOCATABLE.
FAV - подпрограммы.
Fav – подпрограммы управляют AV и обеспечивают взаимодействие AV с приложением. Как правило, fav- и fagl- подпрограммы используются совместно. Fav – подпрограммы подразделяются на группы, имеющие названия:
· запуск AV
· доступ к данным
· зона вывода
· фильтрация данных
· палитра
· оси координат
· выбор
· виды изображений
· 3D вид