Разработка информационной системы для деканата высшего учебного заведения

Порядок контроля и приемки программного обеспечения, требования к документации. Текст программы: модуль Program.cs, sprav predmets.cs. Сообщения, выдаваемые программисту. Капитальные вложения по внедрению системы. Расчет годовой экономии от эксплуатации.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 29.06.2012
Размер файла 7,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

camera

Класс камеры. Содержит методы упрощённого управления камерой в проекции OpenGL. Является предком класса control3d.

cursor

Класс курсора. Сожержит методы получения координат курсора на экране, преобразования их в проекцию OpenGL и обратно. Является предком класса control3d

coltrol3d

Класс управления сценой, наследник классов камеры и курсора, управлять просмотром трёхмерного изображения с помощью мыши: вращать, перемещать, масштабировать.

AverageLevel

Класс, применяемый для расчёта сезонных изменений уровня моря.

CamItem

Элемент последовательности камер, входит в качестве поля в класс CameraSequence.

CameraSequence

Класс-массив камер, является наследником класса Camera, применяется для создания видеороликов.

dinmas

Одномерный простой динамический массив. Используется в качестве массива для большинства типов данных.

dinmas2d

Двумерный простой динамический массив. Используется в качестве массива для батиметрической карты и её текстуры.

smartcont

Одномерный динамический массив с двойной адресацией. Используется для хранения объектов, содержащих поля типа dinmas и dinmas2d, в частности для списка батиметрических треков и списка камер.

TgaHeader

Заголовок TGA-файла.

RGBApixel

Структура точки в формате TGA

texture

Класс, предназначенный для чтения и записи файлов в формате TGA. Применяется как в качестве контейнера текстуры батиметрической карты, так и для сохранения изображений и видео. Является предком класса bath.

DoubleTable

Класс, позволяющий читать ascii-файл, представляющий собой таблицу из чисел, разделённых табуляцией и создающий на выходе двумерный массив. Применяется для чтения исходных данных.

vertex

Структура "узел батиметрии", основанная на трёхмерной точке.

BathPoint

Точка батиметрического трека.

isoline

Класс одного отрезка изолинии.

figure

Класс цифры-подписи.

OneTri

Структура треугольника для триангуляции.

bath

Основной класс для расчёта батиметрии. Содержит все функции обработки и анализа данных.

glWindow

Класс API-окна, реализующего вывод OpenGL-графики.

lamp

Класс, упрощяющий работу с освещением в OpenGL.

RastrFont

Класс, упрощающий работу с выводом текста в среде OpenGL.

WorkArea

Класс, предназначенный для чтения параметров текущего экрана.

Таблица 4.8 - Структура point2d

Вид члена

Описание

Назначение

поле

double x

Абсцисса

поле

double y

Ордината

метод

point2d()

Пустой конструктор

метод

point2d(double, double)

Конструктор

метод

bool equal(point2d&)

Проверка на равенство

метод

void mix(point2d&)

Вычислить среднюю точку

метод

double angto(point2d&)

Получить ориентацию точки

Вид члена

Описание

Назначение

поле

double z

Аппликата

метод

point3d()

Пустой конструктор

метод

point3d(double, double, double)

Конструктор

метод

bool equal(point3d&)

Проверка на равенство

метод

void mix(point3d&)

Вычислить среднюю точку

метод

bool ataru(point3d&)

Попадает ли в точку с радиусом EPS

метод

double z

Аппликата

Вид члена

Описание

Назначение

поле

point3d pos

Позиция

метод

point3d startpos

Начальная позиция

метод

point3d ang

Вектор угла поворота

метод

point3d startang

Начальный вектор угла поворота

метод

camera()

Пустой конструктор

метод

camera(float, float, float, float, float, float)

Конструктор

метод

void view()

Применить камеру

Вид члена

Описание

Назначение

поле

float x

Абсцисса в среде OpenGL

поле

float y

Ордината в среде OpenGL

поле

float dx

Текущая скорость по оси абсцисс в среде OpenGL

поле

float dy

Текущая скорость по оси ординат в среде OpenGL

поле

float size

Размер курсора

поле

float oldX

Предыдущая абсцисса в среде OpenGL

поле

float oldY

Предыдущая ордината в среде OpenGL

поле

int WinX

Абсцисса в оконных координатах

поле

int WinY

Ордината в оконных координатах

поле

int OldWinX

Предыдущая абсцисса в среде OpenGL

поле

int OldWinY

Предыдущая абсцисса в среде OpenGL

поле

bool RMB

Нажата правая кнопка

поле

bool LMB

Нажата левая кнопка

поле

bool MMB

Нажата средняя кнопка

метод

cursor()

Пустой конструктор

метод

void check(int &, int &, int, int)

Получить координаты курсора

метод

void putold()

Запомнить предыдущие значения

метод

void view()

Отобразить курсор

метод

void PutState(bool, bool, bool)

Установить состояние кнопок мыши

метод

void PutState(bool, bool, bool, bool)

Установить состояние кнопок мыши с проверкой

Таблица 4.9 - Структура класса coltrol3d, потомок классов camera и cursor

Вид члена

Описание

Назначение

метод

coltrol3d()

Пустой конструктор

метод

coltrol3d(float, float, float, float, float, float)

Конструктор

метод

void view(bool)

Установить камеру на текущую позицию в соответствии с курсором

метод

void gets(int, int, int, int, bool)

Получить координаты курсора

метод

wheel(bool, float)

Получить сообщение прокрутки мыши, отдалив камеру

метод

coltrol3d middle(coltrol3d, double)

Установить позицию камеры посередине между двумя позициями

Таблица 4.10 - Структура класса AverageLevel

Вид члена

Описание

Назначение

поле

TDateTime date

Текущая дата

поле

double ya

Годовая амплитуда

поле

double yf

Годовая частота

поле

double hya

Полугодовая амплитуда

поле

double hyf

Полугодовая частота

поле

double tya

Третьгодовая амплитуда

поле

double tyf

Третьгодовая частота

поле

unsigned short y

Текущий год

поле

unsigned short m

Текущий месяц

поле

unsigned short d

Текущий день

метод

void put(AnsiString)

Задать данные из файла

метод

double get(TDateTime)

Получить уровень для выбранной даты

Таблица 4.11 - Структура класса dinmas

Вид члена

Описание

Назначение

поле

type* data

Указатель на массив данных

поле

long siz

Размер массива

метод

dinmas()

Пустой конструктор

метод

dinmas(long)

Конструктор

метод

~dinmas()

Десруктор

метод

bool make(long)

Управляемый конструктор (выделить память)

метод

void clear()

Управляемый декструктор (очистить память)

метод

type& operator[](long)

Доступ к элементу массива

метод

int bytes()

Вывести занимаемую память

метод

void insert(type &, int)

Вставить элемент

метод

void erase(int)

Вырезать элемент

метод

push(type &)

Вставить элемент в конец

метод

pop()

Удалить последний элемент

метод

type& top()

Получить последний элемент

метод

bool SaveToFile(AnsiString)

Сохранить содержимое в файл

метод

bool LoadFromFile(AnsiString)

Загрузить содержимое из файла

метод

long& size()

Получить размер массива

метод

operator=(dinmas<type> &)

Скопировать массив

Таблица 4.12 - Структура класса dinmas2d

Вид члена

Описание

Назначение

поле

type** data

Указатель на массив данных

поле

long n

Размер по первому измерению

поле

long m

Размер по второму измерению

поле

bool exists

Массив создан

метод

dinmas2d()

Пустой конструктор

метод

dinmas2d(long, long)

Конструктор

метод

~dinmas2d()

Деструктор

метод

bool make(long, long)

Управляемый конструктор (выделить память)

метод

void clear()

Управляемый декструктор (очистить память)

метод

type* operator[](long)

Доступ к элементу массива

метод

int bytes()

Вывести занимаемую память

метод

operator=(dinmas2d<type> &)

Скопировать массив

Таблица 4.13 - Структура класса smartcont

Вид члена

Описание

Назначение

поле

type** graphs

Указатель на массив данных

поле

int _size

Размер массива

поле

int selected

Индекс выбранного элемента

метод

smartcont(int)

Конструктор

метод

smartcont()

Пустой конструктор

метод

make(int n)

Управляемый конструктор (выделить память)

метод

int &size()

Получить размер массива

метод

void clear()

Управляемый деструктор (очистить память)

метод

type& operator[](int)

Получить элемент по индексу

метод

type& operator()()

Получить выбранный элемент

метод

~smartcont()

Деструктор

метод

insert(type &value)

Вставить элемент по индексу

метод

insert()

Вставить элемент в выбранное место

метод

void copy()

Создать дубликат рядом с выбранным элементом

метод

void erase(int)

Удалить элемент по индексу

метод

void erase()

Удалить выбранный элемент

метод

bool select(int)

Выбрать элемент

метод

int SelectedItem()

Получить индекс выбранного элемента

метод

void MoveUp()

Переместить элемент вверх

метод

void MoveDown()

Переместить элемент вниз

Таблица 4.14 - Структура класса CamItem

Вид члена

Описание

Назначение

поле

coltrol3d ctrl

Позиция камеры

поле

int secs

Занимает секунд

метод

CamItem(coltrol3d, int)

Конструктор

метод

CamItem()

Пустой конструктор

Таблица 4.15 - Структура класса CameraSequence

Вид члена

Описание

Назначение

поле

coltrol3d ctrl

Позиция камеры

поле

int secs

Занимает секунд

метод

CamItem(coltrol3d, int)

Конструктор

метод

CamItem()

Пустой конструктор

Вид члена

Описание

Назначение

поле

int selected

Выбранный элемент

поле

int secs

Всего секунд

поле

int shots

Всего кадров

метод

dinmas<CamItem> ctrl

Массив позиций камеры

метод

dinmas<double> x

Дискретный массив отрезков времени

метод

dinmas<double> y[6]

Дискретный массив позиций и углов поворота камеры

метод

cubic_spline spl[6]

Непрервыный массив (кубический сплайн) позиций и углов поворота камеры

метод

CameraSequence()

Пустой конструктор

метод

void insert(coltrol3d, int)

Вставить новую камеру

метод

void update(coltrol3d, int)

Заменить выбранную камеру

метод

void remove()

Удалить выбранную камеру

метод

coltrol3d selectedCtrl()

Получить выбранную камеру

метод

void countSpline()

Расчитать кубическую интерполяцию

Таблица 4.16 - Структура класса RGBpixel

Вид члена

Описание

Назначение

поле

GLubyte r

Красный канал

поле

GLubyte g

Зелёный канал

поле

GLubyte b

Синий канал

метод

RGBpixel(GLubyte, GLubyte, GLubyte)

Конструктор

метод

RGBpixel()

Пустой конструктор

метод

void GetPixel(GLubyte &, GLubyte &, GLubyte &)

Получить пиксель

метод

RGBpixel ToBGR()

Преобразовать в формат для записи в TGA на 24 бита

метод

RGBApixel ToBGRA()

Преобразовать в формат для записи в TGA на 32 бита

Вид члена

Описание

Назначение

поле

GLubyte a

Альфаканал

метод

RGBApixel(GLubyte, GLubyte, GLubyte, GLubyte)

Конструктор

метод

RGBApixel()

Пустой конструктор

метод

void GetPixel(GLubyte &, GLubyte &, GLubyte &, GLubyte &)

Получить пиксель

метод

RGBApixel ToBGRA()

Преобразовать в формат для записи в TGA на 32 бита

Таблица 4.17 - Структура класса texture

Вид члена

Описание

Назначение

поле

bool exsist

суествует

поле

bool binded

уже применяется

поле

int width

ширина

поле

int height

высота

поле

int RealWidth

ширина, приближённая к степени двойки

поле

int RealHeight

высота, приближённая к степени двойки

поле

int PixelsQnt

количество точек

поле

int ID

идентификационный номер текстуры в OpelGL

поле

float hcoeff

отношение height к RealHeight

поле

float wcoeff

отношение width к RealWidth

поле

dinmas<RGBApixel> imageData

массив точек

метод

GLubyte correct(float)

исправление целочисленного цвета, если он выходит из диапазона 0-255

метод

void operator=(texture &)

копировать текстуру

метод

void SetPixel(int, int, GLubyte, GLubyte, GLubyte, GLubyte)

задать одну точку целыми числами

метод

void SetPixelf(int, int, float, float, float, float)

задать одну точку числами с плавающей точкой

метод

void GetPixel(int, int, GLubyte &, GLubyte &, GLubyte &, GLubyte &)

получить одну точку

метод

texture()

конструктор

метод

bool MakeArray(int, int)

выделение памяти c проверкой на степень двойки

метод

bool MakeArraySimple(unsigned int, unsigned int)

выделение памяти в обход проверки на степень двойки

метод

bool BindTexture(unsigned int, bool, bool)

применение текстуры

метод

bool SaveToTGA(AnsiString)

сохранение в TGA

метод

bool LoadFromTGA(AnsiString, unsigned int, bool, bool)

чтение из TGA

метод

~texture()

деструктор

метод

void DeleteArray()

очистить массив

метод

void UnBind()

отменить текстуру

метод

unsigned int GetWidth()

Получить ширину

метод

unsigned int GetHeight()

Получить высоту

метод

unsigned int GetRealWidth()

Получить ширину, ближайшую к степени двойки

метод

unsigned int GetRealHeight()

Получить высоту, ближайшую к степени двойки

метод

unsigned int GetPixelsQnt()

Получить число пикселей

метод

unsigned int GetID()

Получить ID текстуры

метод

bool GetExsist()

Узнать, существует ли текстура

метод

bool GetBinded()

Узнать, наложена ли текстура

метод

float GetWCoeff()

Получить отношение height к RealHeight

метод

float GetHCoeff()

Получить отношение width к RealWidth

метод

void PutWidth(unsigned int)

Задать ширину

метод

void PutHeight(unsigned int)

Получить высоту

метод

void PutRealWidth(unsigned int)

Получить ширину, ближайшую к степени двойки

метод

void PutRealHeight(unsigned int)

Получить высоту, ближайшую к степени двойки

метод

void PutPixelsQnt(unsigned int)

Получить число пикселей

метод

void PutID(unsigned int)

Получить ID текстуры

метод

void PutExsist(bool)

Узнать, существует ли текстура

метод

void PutBinded(bool)

Узнать, наложена ли текстура

метод

void PutWCoeff(float)

Получить отношение height к RealHeight

метод

void PutHCoeff(float)

Получить отношение width к RealWidth

Таблица 4.18 - Структура класса DoubleTable

Вид члена

Описание

Назначение

поле

dinmas2d<double> d

Выходной массив данных

метод

DoubleTable(AnsiString)

Конструктор

метод

DoubleTable()

Пустой конструктор

метод

bool Load(AnsiString, char)

Прочитать файл, узнав разделитель

метод

double* operator[](unsigned int)

Доступ к элементу

Таблица 4.19 - Структура класса lamp

Вид члена

Описание

Назначение

поле

int light

ID источника света в OpenGL

поле

GLUquadricObj* sun

Указатель на объект-солнце

поле

GLfloat position[4]

Позиция

поле

GLfloat ambient[4]

Внешний свет

поле

GLfloat diffuse[4]

Рассеянный светт

поле

GLfloat specular[4]

Отражащий свет

поле

GLfloat attenuation

Размер блика

поле

bool active

Активен

поле

bool focused

Выбран

метод

lamp()

Пустой конструктор

метод

lamp(int, float, float, float)

Конструктор

метод

make(int, float, float, float)

Задать цвет на позиции

метод

make(int, float, float, float, float, float, float, float, float, float, float, float, float, bool, bool, float);

Задать свет по всем параметрам

метод

void setlight(int)

Установить свет

метод

void put(bool)

Включить свет

метод

void view(bool,bool)

Показать источник света

метод

color(float, float, float, int)

Задать цвет

метод

pos(float, float, float)

Задать позицию

метод

SetInfinity(bool)

Установить, бесконечный ли свет

метод

SetAttenuation(float)

Установить размер бликов

метод

void border()

Показывать рамку на источнике

метод

SetActive(bool)

Активировать

Таблица 4.20 - Структура класса BathPoint

Вид члена

Описание

Назначение

поле

point3d r,m

Точка в географических и нормализованных к 1 координатах

поле

unsigned int t

Сколько миллисекунд прошло с начала трека

поле

double tide

Высота прилива в данной точке

метод

BathPoint()

Конструктор

Вид члена

Описание

Назначение

поле

point3d a

начало

поле

point3d b

конец

поле

bool zero

не показывать

метод

isoline()

конструктор

метод

void put(double &, double &, double &, double &, double &, double &, bool &)

задать

метод

void view(int &)

показать

Таблица 4.21 - Структура класса figure, потомок класса point3d

Вид члена

Описание

Назначение

поле

bool exists

показывать

поле

double length

размер

поле

isoline *line

к какой изолинии привязана

поле

char str[8]

что отображать

поле

int strl

длина строки

поле

double angle

угол разворота

метод

void activate(double, double)

"прилепить" к изолинии

метод

void view(int)

показать

поле

double f

уровень для расчёта изолиний

поле

bool zero

являетмя ли уровень текущей изолинии нулевым

поле

float material_color[4]

массив цвета материала

поле

dinmas<OneTri> tri

набор треугольников для триангуляции

поле

isoline line

буферная изолиния для работы функции расчёта изолиний

поле

bool triangulation()

произвести триангуляцию

поле

dinmas<BathPoint> q

батиметрический трек

поле

dinmas2d<vertex> p

батиметрическая сетка

поле

TDateTime startDate

дата начала съёмки

поле

TDateTime endDate

дата конца съёмки

поле

vector<isoline> iso

вектор изолиний

поле

dinmas2d<figure> figures

массив цифр

поле

dinmas<double> *isolist

список уровней изолиний

поле

double d

шаг сетки

поле

double sclxy

коэффициент нормализации долготы и широты

поле

double sclz

коэффициент нормализации высоты

поле

double cfx

коэффициент нормализации долготы

поле

double cfy

коэффициент нормализации широты

поле

double dev

суммарное математическое отклонение данных от исходных в результате сглаживания и расчёта равномерной сетки

поле

double tmpz

нормализованная высота для расчёта цвета

поле

double isoHaba

частота изолиний

поле

double isolineSize

толщина изолинии

поле

point3d min

минимум, нормализованный к 1

поле

point3d max

максимум, нормализованный к 1

поле

point3d rmn

минимум в географических координатах

поле

point3d rmx

максимум в географических координатах

поле

int k

число строк в текстуре для доступа к ячейке одномерной текстуры по двум координатам

поле

int blurCount

количество проходов размытия

поле

int texNum

ID текстуры в среде OpenGL

поле

int fighaba

Расстояние между подписями

поле

int diffBlur

количество проходов размытия для сравнения батиметрий

поле

int step

пропуск кратных узлов сетки для ускорения отображения

поле

AnsiString Filename

имя файла

поле

bool tex

отображение текстуры средставми OpenGL

поле

bool varIso

переменный список изолиний

поле

bool lighting

освещение включено

поле

bool rt

режим отображения без пропусков

поле

bool viewPoints

отображать треки

поле

bool net

отображать сетку

поле

bool counted

сетка уже расчитана

поле

bool isolines

отображать изолинии

поле

bool viewRelief

отображать рельеф

поле

bool visible

отображать сетку

поле

bool hideFar

скрыть удалённые участки

поле

bool hideUpLimit

скрыть участки, выходящие за границу минимума и максимума

поле

bool needRecount

требуется перерасчёт

поле

bool difference

является разницей между двумя батиметриями

поле

bool blackAndWhite

отображать в чёрнобелых тонах

поле

bool slg

является прочитанным slg-файлом

поле

bool hasTide

прилив вычтен

метод

bath()

Конструктор

метод

bool LoadPoints(AnsiString, bool, bool)

Чтение точек из ASCII-файла

метод

bool LoadSlg(DoubleTable &, AnsiString)

Чтение трека из slg-файла

метод

bool MakeEmpty(int)

Очистить батиметрию

метод

void CountTide(cubic_spline &)

Расчёт прилива

метод

void ReCountMinMax()

Вычисление минимума и максимума

метод

double ReCountMin()

Вычисление только минимума

метод

bool CountNet(int, point3d, point3d, double, double, double, double, double, int, double, double, int, int, int, dinmas<double> *, bool)

Расчёт батиметрической сетки

метод

void blur(int)

размытие

метод

void deviation()

расчёт отклонения

метод

inline __fastcall void CountColor(int &, int &)

Расчёт цвета для выбранного узла сетки

метод

void ReCountColor()

Перерасчёт цвета

метод

inline __fastcall void CountNorm(int &, int &)

Вычисление нормалей

метод

void DefConstr()

Конструктор (в виде вызываемой функции)

метод

void OneVertex(int &, int &)

Вывод одного узла сетки на экран

метод

void view()

Вывод всей батиметрии

метод

void ViewPoints()

Вывот треков

метод

double cf(double &, double &, double &, bool)

Линейная интерполяция

метод

void makeLine(int &, int &)

Создание одной изолинии

метод

void ViewFigures(int)

Отображение цифр-подписей

метод

void countOneIso(double)

Расчёт одного слоя изолиний

метод

void countIso(double, dinmas<double> *, bool)

Расчёт всех изолиний

метод

void CountFigures(int)

Расчёт цифр-подписей

метод

void viewIso()

Отображение изолиний

метод

void EraseNet()

Удаление расчитанной батиметрической сетки

метод

bool GetDiffer(bath &, bath &, int, double, int)

Вычисление разницы между двумя батиметриями

метод

bool GetDifferPoints(bath &, double)

Вычисление

метод

bool ReBindTexture()

Наложение текстуры

метод

bool SaveNet(AnsiString)

Сохранение сетки в ASCII-формате

метод

bool SaveANI(AnsiString, double)

Сохранение данных в формате.inf и.dat для программы ANI

метод

bool SavePointsGoogle(AnsiString)

Сохранение набора точек для отображения в прорамме Google Chrome

метод

bool SaveTrack(AnsiString)

Сохранение трека для отображения в прорамме Google Chrome

метод

bool SavePoints(AnsiString)

Сохранение набора точек в ASCII-формате в географических коордиантах

метод

bool SavePointsMer(AnsiString)

Сохранение набора точек в ASCII-формате в координатах меркатора

метод

bool SaveNetGoogle(AnsiString, int)

Сохранение батиметрической карты для отображения в прорамме Google Chrome

метод

void setConstantPreset(bath &)

Получение всех статических переменных батиметрии из другой

метод

operator=(bath &)

Полное копирование батиметрии из другой

Таблица 4.22 - Структура класса glWindow

Вид члена

Описание

Назначение

метод

LRESULT CALLBACK (*WindProc)(HWND,UINT,WPARAM,LPARAM)

Функция обработки сообщений окна

поле

AnsiString title

Заголовок окна

поле

HINSTANCE hInstance

Содержит экземпляр приложения

поле

GLuint

метод

GLvoid KillGLWindow(GLvoid)

Закрыть окно

метод

BOOL CreateGLWindow(char*, int, int, int, bool)

Создать окно

поле

HDC hDC

Приватный контекст устройства GDI

поле

HWND hWnd

Содержит handle окна типа hWnd

поле

HGLRC hRC

Текущий контекст воспроизведения

поле

HANDLE H

Содержит handle окна типа HANDLE

поле

int winW

Ширина окна

поле

int winH

Высота окна

поле

int winL

Смещение окна слева

поле

int winT

Смещение окна сверху

поле

bool killed

Закрыто ли окно

метод

glWindow()

Пустой конструктор

метод

glWindow(int, int, AnsiString, LRESULT CALLBACK (*wp)(HWND,UINT,WPARAM,LPARAM))

Конструктор

метод

void make(int, int, AnsiString, LRESULT CALLBACK (*wp)(HWND,UINT,WPARAM,LPARAM))

Управляемый конструктор

метод

void __fastcall Execute()

Запуск окна

метод

bool ConnectGlToWindow()

Подключить к окну параметры OpenGL

4.2 Характеристика и структура интерфейса проекта

Интерфейс приложения состоит из двух окон, не считая стандартных всплывающих диалоговых окон и окон сообщений. Окно настроек (по-умолчанию слева) содержит все средства управления программой, кроме настроек положения, угла поворота и масштаба камеры. Данное окно реализовано средствами VCL в среде C++ Builder при помощи стандартных компонентов VCL и (в большей степени) компонетов библиотеки Raize. Окно отображения выводит результаты работы на экран и представляет собой окно, реализованное средствами Windows API, связанной контекстом воспроизведения с OpenGL. Данное окно позволяет вращать и масштабировать сцену.

Модуль «soko_code.cpp» проекта приложения имеет принципиальное значение и реализует базисный функционал системы. В графическом интерфейсе системы данный модуль реализует главное окно настроек приложения.

4.2.1 Главное окно

Главная форма приложения MainForm принадлежит к типу TForm и содержит в себе остальные элементы интерфейса. При закрытии формы, если в программе были произведены изменения, возникнет диалоговое окно с вопросом, сохранить ли изменения в редактируемом файле. Главное окно содержит строку меню, панель инструментов и две сворачиваемые панели - панель сцены и панель батиметрии. Панель сцены состоит из двух частей: верхняя часть содержит элементы управления камерами, нижняя - группы настроек текущей сцены. Панель батиметрии также состоит из двух частей: верхняя часть содержит список батиметрических треков и панель управления ими, нижняя - группы настроек выбранного трека.

Таблица 4.23 - Состав основных компонентов главного окна

Название компоненты

Тип компоненты

Назначение

TMainMenu

MainMenu

Главное меню. Содержит пункты управления открытием, сохранением, испортом и экспортом данных.

TRzToolbar

MainToolBar

Главная панель инструментов. Повторяет функции главного меню.

TRzSizePanel

ViewPanel

Содержит элементы управления всей сценой.

TRzSizePanel

BathsPanel

Содержит элементы управления списком треков и выбранной батиметрией

TRzListBox

CameraList

Список камер для рендеринга видео

TRzToolbar

CameraListEditToolBar

Панель управления камерами, позволяет добавлять, удалять, заменять камеры

TRzGroupbar

CameraGroupBar

Группа управления камерами

TRzGroupbar

SceneGroupBar

Группа управления сценой

TRzCheckList

PointsList

Список треков

TRzToolbar

TrackListEditToolBar

Панель управления списком треков, позволяет импортировать и экспортировать данные, объединять и разделять треки.

TRzGroupbar

BathsGroupBar

Группа управления выбранной батиметрией

4.2.2 Главное меню

Главное меню содержит пункты управления файлами: окрытия, сохранения, импорта и экспорта. Также имеется возможность выйти из приложения, предварительно сохранив изменения с помощью всплывающего окна.

Таблица 4.24 - Состав компонентов главного меню

Название компоненты

Тип компоненты

Назначение

MainMenu

TMainMenu

Основной объект главного меню

MenuFile

TMenuItem

Пукт «файл», сохранение и открытие батиметрических сцен.

MenuNew

TMenuItem

Создать новую сцену / сбросить все настройки

MenuOpen

TMenuItem

Открыть сцену

MenuSave

TMenuItem

Сохранить текущую сцену

MenuSaveAs

TMenuItem

Сохранить новую сцену

MenuSpacer

TMenuItem

Разделитель

MenuExit

TMenuItem

Выйти из программы

MenuData

TMenuItem

Пункт «дата», управление импортом и экспортом данных.

MenuImport

TMenuItem

Импортировать данные

MenuExport

TMenuItem

Экспортировать данные

4.2.3 Группа «границы»

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

Таблица 4.25 - Состав компонентов группы «границы» (выборочно)

Название компоненты

Тип компоненты

Назначение

BordersGroup

TRzGroup

Объект данной группы

Borders

TRzPanel

Панель, ограничивающая редактирование группы в случае наличия хотя бы одной расчитанной батиметрической сетки.

GetFromPoints

TRzBitBtn

Кнопка, позволяющая автоматически получить границы из текущего набора батиметрических треков

PlMinY

TRzSpinEdit

Минимальная широта

PlMaxY

TRzSpinEdit

Максимальная широта

PlMinX

TRzSpinEdit

Минимальная долгота

PlMaxX

TRzSpinEdit

Максимальная долгота

PlMinZ

TRzSpinEdit

Минимальная глубина

PlMaxZ

TRzSpinEdit

Максимальная глубина

PlSclZ

TRzSpinEdit

Масштабирование глубины

PlaceBox

TRzComboBox

Список доступных районов для вычисления прилива и сезонных гармонических колебаний

SeparationType

TRzRadioGroup

Группа, позволяющая выбрать тип задания сетки: с помощью деления выбранного прямоугольника на определённое число узлов сетки, либо задание шага вручную

PlN

TRzSpinEdit

Число узлов сетки по максимальному измерению

Step

TRzSpinEdit

Шаг

StepType

TRzComboBox

Тип задания узлов сетки

BorderLines

TCheckBox

Показывать границы

Lines

TRzCheckBox

Показывать линейки

Measurment

TRzRadioGroup

Отбражать градусную или километровую сетку

С использованием группы «границы» могут быть выполнены следующие основные действия:

Автоматическое задание границ равномерной сетки

Корректировка границ на местности

Установка диапазона глубин

Корректировка масштабирования по высоте

Установка размера и шага батиметрической сетки

Установка названия участка местности для вычисления прилива

Управление внешним видом градусной или киломентровой сетки

4.2.4 Группа «рельеф»

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

Таблица 4.26 - Состав компонентов группы «рельеф» (выборочно)

Название компоненты

Тип компоненты

Назначение

SurfceGroup

TRzGroup

Объект данной группы

HideUpLimit

TCheckBox

Опция, позволяющая скрывать участки рельефа, не вошедшие в диапазон глубин

Net

TCheckBox

Показывать рельеф в виде сетки

PreviewSpin

TRzSpinEdit

Кратный пропуск узлов сетки, используется для ускорения просмотра

Relief

TCheckBox

Опция, позволяющая отображать и скрывать рельеф

ViewPoints

TCheckBox

Опция, позволяющая отображать и скрывать батиметрические треки

4.2.5 Группа «свет и цвет»

Следующая группа на панели сцены отвечает за настройку освещения сцены. Имеется возможность включать и отключать объёмное освещение, изменять режим на чёрно-белый и цветной, изменять угол наклона источника света.

Таблица 4.27 - Состав компонентов группы «свет и цвет» (выборочно)

Название компоненты

Тип компоненты

Назначение

ColorAndLightGroup

TRzGroup

Объект данной группы

BackColor

TRzColorEdit

Объект редактирования цвета фона

Lighting

TCheckBox

Включить или отключить динамическое освещение

Hotspots

TCheckBox

Включить или отключить блики (режим с бликами требует повышенных ресурсов графической системы)

BlackAndWhite

TCheckBox

Чёрно-белый или цветной режим

LightUV

TRzSpinEdit

Угол поворота источника света

LightW

TRzSpinEdit

Угол наклона источника света

4.2.6 Группа «изолинии»

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

Таблица 4.28 - Состав компонентов группы «изолинии» (выборочно)

Название компоненты

Тип компоненты

Назначение

IsolinesGroup

TRzGroup

Объект данной группы

VarIso

TRzRadioGroup

Опция, задающая режим постоянной или переменной частоты изолиний

Isolines

TCheckBox

Отображать или скрывать изолинии

IsolineSize

TRzSpinEdit

Толщина изолиний

IsolineListOpen

TRzToolbarButton

Кнопка, позвляющая загрузить список уровней изолиний из файла при режиме переменной частоты

IsoHaba

TRzSpinEdit

Частота изолиний при режиме постоянной частоты

IsolineList

TRzComboBox

Список переменных уровней изолиний, получаемый после загрузки из файла

4.2.7 Группа «цифры»

Следующая группа на панели сцены отвечает за настройку цифр-подписей. Имеется возможность задать размер и частоту подписей.

Таблица 4.29 - Состав компонентов группы «цифры» (выборочно)

Название компоненты

Тип компоненты

Назначение

FiguresGroup

TRzGroup

Объект данной группы

FiguresSize

TRzSpinEdit

Видимый размер цифр-подписей

FiguresFreq

TRzSpinEdit

Частота расположения цифр-подписей на батиметрической сетке

FiguresCheck

TRzCheckBox

Отображать или скрывать цифры-подписи

4.2.8 Группа «общие настройки»

Следующая группа на панели сцены отвечает за общую настройку сцены. Имеется опция отключения привязки окна отображения к окну настроек, и управление размером цифр шкалы глубин.

Таблица 4.30 - Состав компонентов группы «общие настройки» (выборочно)

Название компоненты

Тип компоненты

Назначение

MainOptionsGroup

TRzGroup

Объект данной группы

PlaceWindow

TRzCheckBox

Опция, позволяющая выбрать, привязывать ли окно отображения к окну настроек

ScaleFigureSize

TRzSpinEdit

Размер цифр шкалы глубин справа в пикселах

4.2.9 Группа «правка трека»

Первая группа на панели батиметрий отвечает за исправление выбранного трека. Имеется возможность вручную просматривать каждую точку, изменять её глубину и географические координаты в абсолютных и относительных координатах. Выбранная точка будет выделяться на окне отображения. Также имеется возможность смещения всего трека в любом направлении.

Таблица 4.31 - Состав компонентов группы «правка трека» (выборочно)

Название компоненты

Тип компоненты

Назначение

TrackEditGoup

TRzGroup

Объект данной группы

PointInd

TRzSpinEdit

Номер выбранной точки

ViewOnePoint

TCheckBox

Выделять на экране выбранную точку

PointsCount

TRzEdit

Поле, отображающее общее число точек

PointX

TRzSpinEdit

Поле для изменения текущей широты точки

PointY

TRzSpinEdit

Поле для изменения текущей долготы точки

PointDepth

TRzSpinEdit

Поле для изменения текущей глубины точки

PointDepthFin

TRzSpinEdit

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

Absolute

TRzCheckBox

Режим смещения в абсолютных или относительных координатах

Replace

TRzBitBtn

Произвести смещение всего трека

4.2.10 Группа «прилив»

Вторая группа на панели батиметрий отвечает за расчёт прилива. Прилив расчитывается по-умолчанию без задействования данной группы, путём выбора местности в группе «границы», однако данная группа позволяет просматривать и изменять дату начала и конца трека, отключать вычет прилива и производить его перерасчёт при изменении местности.

Таблица 4.32 - Состав компонентов группы «прилив» (выборочно)

Название компоненты

Тип компоненты

Назначение

TideGroup

TRzGroup

Объект данной группы

HasTide

TRzCheckBox

Опция, включающая режим вычитания прилива

TideCount

TRzBitBtn

Произвести перерасчёт прилива

StartDate

TRzDateTimeEdit

Управление датой начала съёмки

StartTime

TRzDateTimeEdit

Управление временем начала съёмки

EndDate

TRzDateTimeEdit

Управление датой конца съёмки

EndTime

TRzDateTimeEdit

Управление временем конца съёмки

4.2.11 Группа «расчёт»

Третья группа на панели батиметрий отвечает за расчёт батиметрической сетки. Имеется возможность установить максимальный радиус для смежных областей, что должно соответствовать частоте галсов во время батиметрической съёмки. Участки, расстояние между которыми превышает данный радиус, показаны не будут, так как полагается, что данных недостаточно. Также имеется возможность настроить число проходов размытия готовой сетки.

Таблица 4.33 - Состав компонентов группы «расчёт» (выборочно)

Название компоненты

Тип компоненты

Назначение

CountGroup

TRzGroup

Объект данной группы

CountBtn

TRzBitBtn

Кнопка расчёта батиметрической сетки

DeleteNet

TRzBitBtn

Кнопка удаления сетки из объекта трека

MaxRad

TRzSpinEdit

Максимальный радиус, при котором между смежными данными будет построена сетка

MaskBlurCount

TRzSpinEdit

Число проходов размытия сетки

4.2.12 Группа «разность»

Четвёртая группа на панели батиметрий отвечает за расчёт разностей между батиметрическими сетками. Позволяет выбрать вторую батиметрию для сравнения и построить карту разности. Также, для случая, когда исходные треки сравниваемых батиметрий сильно не совпадают, имеется возможность произвести усечение, оставив только точки, где данные пересекаются в заданном радиусе.

Таблица 4.34 - Состав компонентов группы «разность» (выборочно)

Название компоненты

Тип компоненты

Назначение

DifferenceGroup

TRzGroup

Объект данной группы

DiffList

TRzComboBox

Список батиметрий для сравнения

DiffBtn

TRzBitBtn

Кнопка расчёта разности

DiffRange

TRzSpinEdit

Поле задания радиуса обрезания участков, находящихся вне пересечений треков двух выбранных батиметрий

Nokosu

TRzBitBtn

Кнопка, выполняющая обрезание вышеназванных участков

DiffBlur

TRzSpinEdit

Число проходов размытия сетки

4.2.13 Список треков

В верхней части панели батиметрий расположен список треков и панель управления треками. Расположенные на панели кнопки позволяют производить все основные операции с треками: импорт, экспорт, удаление, перемещение, копирование, переименование, объединение и разделение треков.

Таблица 4.35 - Состав компонентов списка треков и кнопки управления им

Название компоненты

Тип компоненты

Назначение

PointsList

TRzCheckList

Список треков. Позволяет отметить опцией любой трек, что отображает либо скрывает его.

TrackListEditToolBar

TRzToolbar

Список батиметрий для сравнения

PointsOpen

TRzToolbarButton

Импорт треков

PointsDelete

TRzToolbarButton

Удаление выбранного трека

CopyButton

TRzToolbarButton

Копирование трека

Export

TRzToolbarButton

Экспорт выбранного трека

ConnectVisible

TRzToolbarButton

Объединить отмеченные треки в один

Separate

TRzToolbarButton

Разделить треки на точке, отмеченной как «текущая» в группе «правка трека»

RenameButton

TRzToolbarButton

Переименовать трек

BathUp

TRzToolbarButton

Переместить трек вверх

BathDown

TRzToolbarButton

Переместить трек вниз

4.2.14 Камеры

В верхней части панели сцены расположен список камер и панель управления треками. Расположенные на панели кнопки позволяют производить все основные операции с камерами: добавление, обновление, удаление, перемещение, копирование, предваритеьный просмотр видеоролика. Находящаяся под панелью группа камер позволяет задавать свойства видеоряда: продолжительность нахождения на экране в милисекундах, частоту кадров, разрешение видео. Также имеется возможность выбирать между плавным и резким перемещением видео, а также между режимами перспективной и ортогональной проекиций.

Таблица 4.36 - Состав компонентов списка треков и кнопки управления им

Название компоненты

Тип компоненты

Назначение

CameraList

TRzListBox

Список камер

CameraAdd

TRzToolbarButton

Добавить камеру

CameraDelete

TRzToolbarButton

Удалить выбранную камеру

CameraUpdate

TRzToolbarButton

Обновить выбранную камеру на текущую

CameraReload

TRzToolbarButton

Установить текущую камеру как выбранную

CameraPlay

TRzToolbarButton

Предварительный просмотр видео

ResetCamera

TRzToolbarButton

Обнулить текущую камеру

ShotButton

TRzToolbarButton

Сохранить изображение

SaveVideo

TRzToolbarButton

Сохранить видео

CameraGroupBar

TRzGroupBar

Панель групп для камеры

CameraGroup

TRzGroup

Группа камер

Perspective

TCheckBox

Установить перспективную или ортогональную проекцию

CameraSmooth

TCheckBox

Сглаживание движения камеры

ShotWidth

TRzSpinEdit

Ширина экрана для сохранения

ShotHeight

TRzSpinEdit

Высота экрана для сохранения

CameraFrameRate

TRzSpinEdit

Частота кадров в секунду

CameraSecs

TRzSpinEdit

Количество миллисекунд, за которые будет показана выбранная позиция камеры в видео

CameraStat

TRzStatusBar

Панель для вывода сообщений о размере видео и общем количестве кадров

4.2.15 Обращение к программе

Вызов и загрузка программы осуществляется запуском исполняемого файла Soko.exe. Исполняемый файл должен находится в одной папке с набором дополнительных консольных приложений и директорий, содержащих файловую базу данных к ней (в соответствии со схемой программы, приведённой в приложении 1 на рисунке 1.10).

Входные данные

Входными данными приложения являются:

1) батиметрические треки, получаемые посредством съёмки с помощью картплоттера-эхолота;

2) береговые треки, получаемые с помощью GPS-навигатора;

3) название региона и его координаты для определения уровня прилива и сезонных изменений уровня моря;

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

Выходные данные

Выходными приложения являются:

1) батиметрические карты и карты разницы для выбранных участков в чёрно-белом и цветом варианте;

2) изображения трёхмерных срезов батиметрических данных, показанные с определённого ракурса;

3) видео-файлы, представляющие собой съёмку трёхмерной батимет-рической карты с различных ракурсов;

4) батиметрические треки и сетки, готовые для отображения в про-грамме Google Earth;

5) батиметрические сетки в формате.inf для обработки в программном комплексе ANI.

4.3 Сообщения, выдаваемые программисту

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

"Сохранить изменения в файле <имя файла> перед закрытием?";

"Ошибка чтения файла";

"Ошибка чтения таблицы";

"Файл не может быть открыт";

"Файл не содержит корректных данных";

"Сетка не рассчитана";

"Ошибка записи";

"Ошибка чтения";

"Ошибка массива";

"Невозмоно создать контекст устройства OpenGL";

"Не найден подходящий формат пиксела";

"Невозможно установить формат пиксела";

"Невозможно создать контекст воспроизведения OpenGL";

"Контекст воспроизведения OpenGL не может быть активирован";

"Ошибка создания текстуры".

"Ошибка выделения памяти"

"Дата начала больше даты конца"

5. РУКОВОДСТВО ОПЕРАТОРА

5.1 Назначение

Система обеспечивает выполнение следующих основных функций:

Импорт батиметрическиз данных из исходных треков, получаемых с картплоттера-эхолота, береговых линий из GPS-навигатора а также загрузка сторонних искусственно созданных данных.

Совмещение, компоновка и редактирование данных, исправление ошибок.

Подготовка данных к отображению и обработке: вычитание высоты прилива и сезонных колебаний уровня моря.

Построение и импорт батиметрических карт.

Построение карт сравнения динамики рельефа.

Экспорт данных в различные форматы.

Процесс обработки батиметрических данных изображён на диаграммах объектно-ориентированной модели данной предметной области, выполненных в нотации языка UML.

5.2 Условия эксплуатации

Разрабатываемая система предназначена для использования на персональных IBM-совместимых компьютерах с центральным Intel-совместимом процессором с частотой работы не менее 1ГГц, оперативным запоминающим устройством объёмом не менее 512 Мб, свободным дисковым пространством не менее 25 Мб для хранения программного обеспечения и 500 Мб для хранения промежуточных данных. Обязательным условием является наличие манипулятора типа «мышь», SVGA-адаптера, совместимого с библиотекой OpenGL и монитора с разрешением не менее 1024х768.

5.3 Выполнение программы

Схема компонентов программы приведена на рисунке 1.10 в приложении 1. Для запуска программы необходимо наличие в каталоге указанных на данной схеме консольных приложений.

После запуска программы открывается два окна - окно настроек слева и окно отображения справа (см. приложение 1, рисунок 3.1).

Окно насроек предоставляет интерфейс ко всем функциональным возможностям программы, кроме управления текущей камерой, которое осуществляется в окне отображения. Окно разделено на несколько логических блоков. Любой элемент интерфейса окна настроек можно масштабировать и сворачивать. Имеется строка меню, панель инструментов и две сворачиваемые панели - панель сцены и панель батиметрии. Панель сцены состоит из двух частей: верхняя часть содержит элементы управления камерами, нижняя - группы настроек текущей сцены. Панель батиметрии также состоит из двух частей: верхняя часть содержит список батиметрических треков и панель управления ими, нижняя - группы настроек выбранного трека. Особенностью интерфейся приложения являются группы - сворачиваемые наборы настроек, объединённые общим назначением. Список доступных групп перечислен в таблице 99.

Таблица 5.1 - Группы интерфейса

Название

Назначение

Расположение

Границы

Постоянные настройки батиме трической сетки, границы, частота сетки, местность

Левая панель

Рельеф

Внешний вид рельефа батиметрической карты

Левая панель

Свет и цвет

Настройка освещения и цветов в программе

Левая панель

Изолинии

Настройка изолиний: расположения, частоты, толщин

Левая панель

Цифры

Настройка цифр-подписей на карте: размера, частоты

Левая панель

Общие настройки

Общие настройки приложения

Левая панель

Правка трека

Правка отдельных точек, смещение всего трека

Правая панель

Прилив

Вычисление и исправление приливов

Правая панель

Расчёт

Расчёт батиметрической сетки

Правая панель

Разность

Вычисление разностей батиметрий

Правая панель

Камера

Создание одиночных изображений и динамических

Левая панель (сверху)

После запуска программы следует нажать первую кнопку с изображением папки в самом верху панели «батиметрии». Это откроет диалоговое окно импорта исходных данных.

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

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

После запуска программы следует выбрать локацию, чтобы приливы и сезонные колебания уровня расчитались автоматически при загрузке данных. Для этого следует в группе «границы» открыть список «район» и выбрать доступный район.

Если исходные данные не были загружены в момент запуска, следует импортировать батиметрические данные. Для этого можно выбрать пункт меню Файл>Импорт, либо нажать на изображение папки в правой панели под пустым списком треков - откроется диалоговое окно импорта исходных данных.

В списке возможных форматов находятся описанные ранее варианты загрузки данных. ASCII-координаты могут быть с глубиной, записанной отрицательными либо положительными числами, а координаты могут быть географическими или Меркатора. Также имеется возможность открывать треки необработанных исходных данных, или преобразованных в текст. Полный список форматов импорта показан в таблице 99.

Таблица 5.2 - Форматы импорта

Название формата

Расширения

ASCII координаты эхолота, глубина положительная

*.txt;*.dat

ASCII координаты эхолота, глубина отрицательная

*.txt;*.dat

ASCII координаты в градусах, глубина положительная

*.txt;*.dat

ASCII координаты в градусах, глубина отрицательная

*.txt;*.dat

Lowrance SLG

*.slg

Lowrance SLG преобразованный

*.txt

GPS eXchange

*.gpx

Трек пути из Google

*.kml

Промеры пляжа

*.csv

Предположим, импортируются исходные треки в формате slg. После их загрузки на экране появится изображение. Иногда приборы могут выдать ошибочные данные, что можно легко заметить по резкому перепаду высот. Чтобы устранить ошибки, в группе «правка трека» следует установить флажок «показать», тогда будет выделена выбранная точка (см. рисунок 12). Следует изменить высоту всех ошибочных точек, если таковые имеются.

Далее следует отметить флажком в списке, которые из треков следует включать в батиметрию, и нажать кнопку «объединить видимые» а панели под списком треков (обозначена пиктограммой прямоугольника). Оставшиеся ненужные треки следует удалить, выделив каждый в списке, и нажав кнопку с крестом, справа от кнопки импорта. При загрузке обработанных данных, этот этап пропускается.

В программе уже хранятся настройки по-умолчанию, обеспечивающие корректный расчёт равномерной сетки. При необходимости, воспользовавшись группой «границы», можно сделать дополнительные настройки: установить частоту будущей сетки, задать пользовательские границы с помощью полей ввода, изменить масштабирование по глубине (по-умолчанию 50 раз), изменить диапазон глубин. В группе «расчёт» имеется возможность установить пользовательское число проходов размытия перед расчётом. В группе «изолинии» имеется возможность установить пользовательскую частоту изолиний. В группе «цифры» - пользовательские настройки цифр-подписей.

После нажатия кнопки «расчёт» следует подождать некоторое время. Отключится часть группы «границы», а к видимым трекам добавится рассчитанная сетка.

При наличии нескольких рассчитанных батиметрий имеется позможность получить карту их разностей. Для возвращения в режим исходных данных следует выбрать каждую батиметрию с рассчитанной равномерной сеткой и нажать кнопку «удалить сетку». Только в этом случае станет доступным изменение границ.

Экспорт производится аналогично импорту нажатием кнопки экспорта, которая находится справа от кнопок импорта и удаления. Полный список форматов экспорта показан в таблице 99.

Таблица 5.3 - Форматы импорта

Название формата

Расширения

Матрица высот для MathCad

*.grd

Матрица высот для Google

*.kml

Набор точек в географических координатах с положительной глубиной

*.txt

Набор точек для Google

*.kml

Набор точек в координатах меркатора с отрицательной глубиной

*.txt

Трек пути для Google

*.kml

Матрица для ANI

*.inf

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

Для сохранения и загрузки всего состояния системы, сдедует использовать пункты меню «открыть» и «сохранить как…». Данные сохраняются в формате.soko, разработанном специально для данного приложения.

Для сохранения результатов в графическом виде, следует воспользоваться группой «камеры». Установив требуемую ширину и высоту изображения следует нажать на кнопку «сохранить изображение».

Для создания видеоролика следует последовательно установить камеры - ракурсы, по которым будет перемещаться объектив. Для этого следует установить камеру в начальном положении, задать количество миллисекунд, которые камера будет находиться на этом месте, и нажать кнопку «добавить камеру» с изображением плюса. Далее следует изменить положение на новое и повторить операцию. В конце, задав частоту кадров, следует также указать разрешение видео и нажать на кнопку «сохранить видео». Рендеринг может занять продолжительное время. В конце будет предложено диалоговое окно с выбором кодека, кодирующего будущий видеофайл.

5.4 Сообщения, выдаваемые оператору

Программа информирует пользователя обо всех важных процессах с помощью изменения заголовка окна. При одидании действий от пользователя заголовок окна принимает вид «СОКО», остальные варианты заголовка перечислены ниже:

"СОКО - сохранение точек";

"СОКО - расчёт триангуляции";

"СОКО - чтение треугольников";

"СОКО - треугольники прочитаны";

"СОКО - временные файлы удалены";

"СОКО - Чтение ASCII";

"СОКО - Чтение slg";

"СОКО - триангуляция";

"СОКО - триангуляция завершена";

"СОКО - создана сетка";

"СОКО - не создана буферная сетка";

"СОКО - создана буферная сетка";

"СОКО - создана текстура";

"СОКО - обнуление сетки";

"СОКО - расчёт треугольников";

"СОКО - расчёт цвета и нормалей";

"СОКО - наложение текстуры";

"СОКО - размытие <номер трека>";

"СОКО - расчёт ошибки";

"СОКО - расчёт цвета";

6. ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ

6.1. Объект испытаний

6.1.1 Наименование системы

Наименование системы - Приложение «SOKO».

6.1.2 Назначение системы

Система обеспечивает выполнение следующих основных функций:

Ускорение, упрощение и автоматизация чтения и подготовки исходных данных из различных форматов.

Построение двумерных и трёхмерных батиметрических карт для анализа и обработки в научных лабораториях и для навигационных служб портов.

Быстрое построение батиметрической карты в процессе её съемки на основе имеющихся данных

Экспорт данных в различные графические, текстовые и двоичные форматы.

6.2 Цель испытаний

Целью данных испытаний являются проверка работоспособности программного обеспечения и соответствие программы и результатов её работы требованиям корректности, надежности и правильности, предъявленными в техническом задании.

6.3 Требования к программе

Разрабатываемая система должна быть предназначена для автоматизации обработки, визуализации и анализа батиметрических данных, к которым относятся процессы, связанные чтением и исправлением данных, построением триангуляционной сетки, настройкой параметров сцены, экспортом данных.

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

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

6.4 Требования к программной документации

При испытании системы использовались следующие документы:

техническое задание;

руководство оператора;

руководство программиста.

6.5 Состав и порядок испытаний

6.5.1 Технические средства, используемые во время испытаний

Тестирование проводилось на рабочих станциях локальной компьютерной сети предприятия. Компьютеры, используемые для тестирования, соответствуют следующей спецификации: IBM PC совместимый персональный компьютер, оснащённый процессором с тактовой частотой не менее 2,7 ГГц, оперативной памятью не менее 8 Гб, графической подсистемой с памятью не менее 2 Гб, устройствами ввода (клавиатура и манипулятор мышь).


Подобные документы

  • Проектирование программного обеспечения для классифицирования выпускников высшего учебного заведения. Выбор системы управления базами данных и языка программирования. Разработка структуры данных, схема базы данных. Реализация программного комплекса.

    дипломная работа [2,4 M], добавлен 27.03.2013

  • Методика расчётов показателей ликвидности предприятия. Требования к программному продукту: описание решаемых задач, внутренней структуры системы (базы данных), рекомендации программисту и пользователю. Порядок контроля и приемки программного продукта.

    курсовая работа [1010,9 K], добавлен 28.05.2013

  • Разработка подсистемы формирования комплексной оценки в системе мониторинга наукометрических показателей работников высшего учебного заведения. Виды и методы шкалирования. Исследование существующих математических моделей построения комплексных оценок.

    дипломная работа [3,3 M], добавлен 10.11.2012

  • Характеристика объектов автоматизации информационных систем. Требования к документированию. Порядок контроля и приемки системы. Описание потоков данных и бизнес процессов. Структура информационной системы, состав функциональных и обеспечивающих подсистем.

    курсовая работа [1,9 M], добавлен 18.09.2013

  • Создание технического задания на разработку информационной системы для заказа билета на самолет. Требования к документированию. Порядок контроля и приемки системы. Разработка концепции, архитектуры построения и платформы реализации информационной системы.

    курсовая работа [1,8 M], добавлен 13.05.2015

  • Основание для разработки автоматизированной информационной системы "Будущий абитуриент". Технические требования к программному изделию. Порядок контроля и приемки продукта. Рассмотрение исходной базы данных. Описание интерфейса программного обеспечения.

    дипломная работа [3,3 M], добавлен 08.02.2013

  • Создание электронного учебника, написанного на языке гипертекстовой разметки HTML. Характеристика программного обеспечения ЭВМ, необходимого для создания и эксплуатации информационной системы. Алгоритм функционирования системы, отладка программы.

    курсовая работа [1,0 M], добавлен 22.12.2012

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

    курсовая работа [381,6 K], добавлен 20.06.2012

  • Разработка системы управления базой данных "Структура ВУЗа". Требования к программе: функциональным характеристикам, надежности, эксплуатации, составу и параметрам технических средств. Требования к программной документации. Порядок контроля и приемки.

    курсовая работа [982,7 K], добавлен 08.06.2015

  • Реализация информационной системы для ведения документации по аренде в СУБД Access 2000. Построение функциональной и информационной модели. Описание программного обеспечения, разработанного в архитектуре "клиент-сервер", анализ операционных характеристик.

    курсовая работа [637,9 K], добавлен 30.08.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.