Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
diploma.doc
Скачиваний:
14
Добавлен:
31.08.2019
Размер:
1.03 Mб
Скачать

3.3. Кодування виводу координатної системи.

Після реалізації основного алгоритму роботи програми перейдемо до програмування другого вікна. Спочатку його необхідно додати у ресурси проекту. Для цього необхідно перейти у Resource View та у ATriangulation/ATriangulation.rс /Dialog вставити новий діалог з допомогою контекстного меню. Потім необхідно змінити ідентифікатор створеного діалогу на IDD_WIN2.

Для ініціалізації вікна потрібно оголосити його дескриптор у файлі ATriangulationDlg.cpp: CWin2Dlg dlgWin2;

Вікно ініціалізується при натисканні кнопки IDC_BUTTON2 першого вікна:

void CATriangulationDlg::OnBnClickedButton2()

{

dlgWin2.DestroyWindow();

dlgWin2.Create(IDD_WIN2,this);

dlgWin2.ShowWindow(SW_SHOW);

}

Щоб не оголошувати нові змінні та знову не зчитувати параметри з файлу, скористаємось змінними з першого діалогу з допомогою ключового слова extern:

extern int N;

extern double x, y;

extern double sizeX, sizeY;

extern double *X, *Y;

extern int Index[3];

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

double koef=1;

double rsX = sizeX * 100;

double rsY = sizeY * 100;

Якщо значення довжини системи координат, помноженої на 100 більше за 640, то:

if(rsX > 640) {

koef = rsX / 640;

rsX /= koef;

rsY /= koef;

}

Якщо значення ширини системи координат, помноженої на 100 більше за 480, то:

if(rsY > 480) {

koef = rsX / 480;

rsX /= koef;

rsY /= koef;

}

Для зображення системи координат скористаємось функцією, що малює прямокутник (Rectangle()). У верхньому лівому куті знаходиться початок координат.

Зміна розмірів вікна, та зображення прямокутника:

MoveWindow(100, 100, rsX+90, rsY+70, TRUE);

dc.Rectangle(40, 30, rsX+40, rsY+30);

Опорні точки зображуються у вигляді квадратів малого розміру:

for(int i=0; i<N; i++) {

dc.Rectangle(X[i]*100/koef+35, Y[i]*100/koef+25, X[i]*100/koef+45, Y[i]*100/koef+35);

strx.Format("%d(%.2f; %.2f)", i, X[i], Y[i]);

dc.TextOutA(X[i]*100/koef, Y[i]*100/koef, strx);

}

Шукані координати положення спостерігача обводяться колом. Спостерігач та опорні точки, що були використані для обчислень, з'єднуються прямими лініями:

if(x!=0 && y!=0) {

dc.MoveTo(x*100/koef+40, y*100/koef+30);

dc.LineTo(X[Index[0]]*100/koef+40, Y[Index[0]]*100/koef+30);

dc.MoveTo(x*100/koef+40, y*100/koef+30);

dc.LineTo(X[Index[1]]*100/koef+40, Y[Index[1]]*100/koef+30);

dc.MoveTo(x*100/koef+40, y*100/koef+30);

dc.LineTo(X[Index[2]]*100/koef+40, Y[Index[2]]*100/koef+30);

dc.Ellipse(x*100/koef+30, y*100/koef+20, x*100/koef+50, y*100/koef+40);

strx.Format("X=%.2f; Y=%.2f", x, y);

dc.TextOutA(x*100/koef, y*100/koef, strx);

}

Розділ іv. Тестування

Тестування програмного забезпечення — це процес, що використовується для виміру якості розроблюваного програмного забезпечення. Зазвичай, поняття якості обмежується такими поняттями, як коректність, повнота, безпечність, але може містити більше технічних вимог, які описані в стандарті ISO 9126. Тестування - це процес технічного дослідження, який виконується на вимогу замовників, і призначений для вияву інформації про якість продукту відносно контексту, в якому він має використовуватись. До цього процесу входить виконання програми з метою знайдення помилок.

Якість не є абсолютною, це суб'єктивне поняття. Тому тестування не може повністю забезпечити коректність програмного забезпечення. Воно тільки порівнює стан і поведінку продукту зі специфікацією. При цьому треба розрізняти тестування програмного забезпечення і забезпечення якості програмного забезпечення, до якого належать усі складові ділового процесу, а не тільки тестування.

Існує багато підходів до тестування програмного забезпечення, але ефективне тестування складних продуктів - це по суті дослідницький процес, а не тільки створення і виконання рутинної процедури.

Тестування програми відбуватиметься методом чорного ящика. При тестуванні чорного ящика (англ. black-box testing), тестер має доступ до програмного забезпечення тільки через ті ж інтерфейси, що й замовник або користувач, або через зовнішні інтерфейси, що дозволяють іншому комп'ютеру або іншому процесу підключитися до системи для тестування. Наприклад, модуль, що тестується, може віртуально натискати клавіші або кнопки миші в програмі, що тестується, за допомогою механізму взаємодії процесів, із упевненістю в тім, що ці події викликають той же відгук, що й реальні натискання клавіш і кнопок миші.

Одним з видів тестування програми методом чорного ящика є функціональне тестування.

Функціональне тестування - це тестування програмного забезпечення з метою перевірки реалізованих функціональних вимог, тобто здатності ПЗ в певних умовах вирішувати завдання, потрібні користувачам. Функціональні вимоги визначають, що саме робить ПЗ, які завдання воно вирішує.

Функціональні вимоги до розробленого ПЗ:

  1. Функціональна придатність.

  2. Точність.

  3. Здатність до взаємодії.

Для функціонального тестування розробленого програмного забезпечення знадобиться фотокамера та деяка місцевість або приміщення, де проводився замір положення опорних точок. Для фотографування використовувалась цифрова камера Olympus m760 з кутом огляду камери 52° та кімната розмірами 5.6м в довжину та 3.06м в ширину. Були заміряні положення десяти опорних точок. Всі дані були занесені у файл конфігурації програми setup.cfg:

0.9071

5.6 3.06

10

0 3.06

0 1.83

0 0

0.96 0

5.6 0

5.6 1.22

5.6 3.06

4.84 2.45

3.95 2.45

0.76 2.55

Перший рядок файлу — кут огляду камери у радіанах, другий — розміри координатної системи, третій — кількість опорних точок. Далі перераховуються координати положення опорних точок, де перше значення — положення по довжині, а друге — положення по ширині. Індекси присвоюються автоматично від 0 до n-1. Конфігураційний файл необхідно помістити його у директорію з програмою.

Після запуску програми, по натисканню кнопки “Нарисовать”, створиться друге вікно, і якщо файл конфігурації був описаний правильно, у вікні будуть зображені положення всіх точок (Рис. 4.1). Якщо ж файл конфігурації відсутній, користувач отримає відповідне повідомлення, де буде вказано про відсутність файлу setup.cfg.

Р ис. 4.1. Положення опорних точок на місцевості.

Для перевірки правильності визначення координат слід зробити фотографії з декількох позиції, з заздалегідь визначеним положенням. Координати позицій та використані опорні точки представлені у таблиці (Таблиця 4.1).

Таблиця 4.1.

Координата X

Координата Y

Використані ОТ

1.

1.05

0.8

0, 1, 9

2.

5

1.1

0, 1, 2

3.

2.6

1.3

5, 7, 8

Для кожного випадку вимірювання необхідно повторити декілька разів підряд та виміряти похибку. Похибка вимірювання - оцінка відхилення виміряного значення величини від її справжнього значення. Похибка вимірювання є характеристикою (мірою) точності вимірювання.

Для кожного з вимірювань похибка обчислюватиметься за допомогою метода середньоквадратичного відхилення, адже в теорії ймовірностей і статистиці це найбільш поширений показник розсіювання значень випадкової величини відносно її математичного сподівання. Дорівнює кореню квадратному з дисперсії випадкової величини. Стандартне відхилення використовують при розрахунку стандартної помилки середнього арифметичного, при побудові довірчих інтервалів, при статистичній перевірці гіпотез, при вимірюванні лінійного взаємозв'язку між випадковими величинами.

Формула середньоквадратичного відхилення:

, (4.1)

де S - стандартне відхилення, незміщена оцінка середньоквадратичного відхилення випадкової величини x відносно її математичного сподівання, n – кількість виконаних замірів, - поточне значення, - середнє арифметичне всіх значень.

Результати вимірювань та похибки необхідно заносити у таблицю.

Серії тестів:

1. Визначити положення за допомогою опорних точок 0, 1, 9. Результати вимірювань даного тесту представлені у таблиці (Таблиця 4.2). Результат роботи програми під час найточнішого визначення положення представлено на рисунку (Рис. 4.2).

Таблиця 4.2.

Координата X

Координата Y

1.

1.0149

0.8164

2.

1.0453

0.7880

3.

1.0597

0.8294

1.0399

0,8112

S=

0.0228

0,0211

Р ис. 4.2. Результати роботи програми під час першого тесту.

2. Визначити положення за допомогою опорних точок 0, 1, 2. Результати вимірювань даного тесту представлені у таблиці (Таблиця 4.3). Результат роботи програми під час найточнішого визначення положення представлено на рисунку (Рис. 4.3).

Таблиця 4.3.

Координата X

Координата Y

1.

4.9760

1.1242

2.

5.0134

1.0893

3.

5.0563

1.1901

5,0152

1,1345

S=

0,0402

0,0511

Р ис. 4.3. Результати роботи програми під час другого тесту.

3. Визначити положення за допомогою опорних точок 5, 7, 8. Результати вимірювань даного тесту представлені у таблиці (Таблиця 4.4). Результат роботи програми під час найточнішого визначення положення представлено на рисунку (Рис. 4.4).

Таблиця 4.4.

Координата X

Координата Y

1.

2.6138

1.3230

2.

2.5180

1.3177

3.

2.5814

1.2895

2.5710

1,3100

S=

0,0487

0,0180

Р ис. 4.4. Результати роботи програми під час третього тесту.

Результати тестів демонструють, що програма виконує поставлені задачі, що відповідає вимогам функціональної придатності. Похибка визначення положення, яка правило, незначна, але залежить від багатьох факторів, що ускладнює її точне обчислення.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]