1.3 Описание библиотеки функций Array Visualizer.

Ввиду сложности создания Windows-приложений, а также того, что ActiveX-компонента Avis2D не корректно отображает одномерные массивы было решено использовать непосредственно оболочку Array Viewer в совокупности с программой, расширяющей его возможности, а так же служащей более простым интерфейсом между программой инженера и AV. Для создания программы был применен подход с использованием fagl- и fav- процедур. Программа писалась на языке CVF v6.5.

Опишем процедуры API AV, встраивание которых в приложение позволяет запускать 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 или Graph Views AV. По умолчанию массив отображается с границами, равными единице.
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(*)

Для вызова приведенных выше подпрограмм в использующем их программном компоненте следует выполнить ссылку:

Use avdef ! Ссылка на модуль avdef.f90

Модуль AVDEF содержит интерфейсы fagl-подпрограмм.

Перечисленные подпрограммы обычно используются следующим образом:

1.         до отображения массива array вызовите faglStartWatch с параметром array;

2.         если необходимо отображать массив, имея нижнюю левую границу, отличную от единицы, примените faglLBound;

3.         для отображения сообщения, сопровождающего выводимые данные, вызовите faglName;

4.         для запуска AV и отображения массива array вызовите faglShow с первым параметром, равным array. AV будет функционировать до тех пор, пока не выполнена команда faglClose;

5.         если хранимые массивом данные подверглись изменениям, то для их отображения вызовите faglClose;

6.         для сохранения массива array в виде файла с расширением AGL (Array Graphing Language) вызовите faglSaveAsFile, использовав array в качестве первого параметра. При этом AV может быть некактивным;

7.         при необходимости можно вызвать faglGetShareName и получить строку filename, позволяющую процедурам Avis2D и AvisGrid осуществлять доступ к памяти, занятой массивом.

8.         после завершения просмотра массива вызовите faglEndWatch.

Для массивов отображаемых в AV рекомендуется использовать атрибут !DEC$ATTRIBUTES array_visualizer :: array. Действие этого атрибута таково: память, занимаемая массивом array, используется и AV и приложением. При отсутствии атрибута будут созданы две области данных array и при каждом обновлении массива после вызова faglUpdate данные будут копироваться из области, принадлежащей приложению, в область, используемую AV.

Заметим, что DEC-атрибут ARRAY_VISUALIZER может быть применен только с динамическими объектами, т.е. объектами, обладающими атрибутом PIONTER или ALLOCATABLE.

FAV - подпрограммы.

Fav – подпрограммы управляют AV и обеспечивают взаимодействие AV с приложением. Как правило, fav- и fagl- подпрограммы используются совместно. Fav – подпрограммы подразделяются на группы, имеющие названия:

·     запуск AV

·     доступ к данным

·     зона вывода

·     фильтрация данных

·     палитра

·     оси координат

·     выбор

·     виды изображений

·     3D вид

·     растровая карта

·     векторный граф

·     отображение данных

·     камера

·     маркер

·     разное

Работа с fav-подпрограммами станет возможной после выполнения ссылки:

Use avviewer

в которой модуль AVVIEWER содержит интерфейсы и константы подпрограмм.

Поскольку fav – подпрограмм очень много (более 100), приведем описание только тех из них, которые используются в программе.

Подпрограмма Что выполняет
Запуск AV
favStartViewer Запускает экземпляр AV
favEndViewer Завершает работу экземпляра AV
Доступ к данным
favSetArray Загружает в AV заданный массив
Фильтрация данных
favUpdate Вызывается, когда нужно обновить изображение, созданное AV, чтобы отобразить изменения, произошедшие с момента последнего обновления данных или начальной загрузки.
Оси координат
favSetDimScale Ассоциирует ось координат с массивом, содержащим разметку оси.
favSetUseAxisLabel Включает/отключает вывод заданных пользователем имен осей координат
favSetAxisLabel Задает имя указанной оси координат.
Виды изображений
favSetGraphType Задает видовой режим
Разное
favSetArrayName Задает текст, выводимый на заголовочной полосе AV
favShowWindow Отображает/скрывает окно AV

Информация о работе «Визуализация инженерных и научных расчетов»
Раздел: Информатика, программирование
Количество знаков с пробелами: 112439
Количество таблиц: 9
Количество изображений: 11

Похожие работы

Скачать
249178
21
46

... системам линейных алгебраических уравнений с более чем одной неизвестной; MATLAB решает такие уравнения без вычисле-ния обратной матрицы. Хотя это и не является стандартным математическим обозначением, система MATLAB использует терминологию, связанную с обычным делением в одномерном случае, для описания общего случая решения совместной системы нескольких линейных уравнений. Два символа деления / ...

Скачать
114601
5
73

... концентрических окружностей с уменьшающимся радиусом по мере затухания колебаний скорости и момента. Аналогичная картина наблюдается при ступенчатом набросе нагрузки. 5. РАЗРАБОТКА ВИРТУАЛЬНОЙ ЛАБОРАТОРНОЙ РАБОТЫ НА БАЗЕ ВИРТУАЛЬНОЙ АСИНХРОННОЙ МАШИНЫ   Иную возможность анализа АД представляет специализированный раздел по электротехнике Toolbox Power System Block. В его библиотеке имеются блоки ...

Скачать
60267
1
0

... - в группе переменных, «зажатых в кулак», но этот «кулак», как мы уже отмечали, легко разжать, выводя на дисплей найденные значения с «первородной» размерностью массы (kg), длины (m) и времени (sec): пакет MathCAD «разжимает» и сам вектор, м составные размерности, приписывая к числам комбинации основных физических единиц. Но не только этим хороша размерность в задачах. Главное то , что она ...

Скачать
55431
1
0

... де-факто, чему способствовала и их большая универсальность). Таким образом, именно Microsoft Excel был выбран мной для разработки средства автоматизации расчетов в лабораторной работе «Предварительные вычисления в триангуляции». Поэтому другие средства построения электронных таблиц здесь не рассматриваются, но зато уделяестся внимание некоторым специфичным средствам Excel. Возможности EXCEL ...

0 комментариев


Наверх