ук найбільш віддаленій від відрізка точки
Щоб обчислити відстань від точки до відрізка, скористаємося такою формулою:
(2)
В
Рис. 8. Обчислення відстані від точки до відрізка. p> Відстанню від точки до відрізка вважається довга перпендикуляра, опущеного з заданої точки на відрізок.
.3 Побудова зміненого трикутника
1. Знаходимо середини сторін трикутника за формулою:
(3)
(4)
- координати точки, початок і кінець відрізка.
Переходимо до пункту 2.
2. З'єднуємо обчислені точки відрізками - в циклі обчислюємо координати всіх точок відрізка за формулою:
(5)
(6)
координати обчисленої точки.
координата початку відрізка.
довга проекції відрізка на вісь
довга проекції відрізка на вісь
2.4 Висновок результату роботи програми
.4.1 Висновок обробленого зображення
Трикутники зберігаються в пам'яті у вигляді списків координат вершин. За координатами всіх точок у нульову матрицю записуються одиниці. Оновлена ​​матриця записується у вихідний текстовий файл. Текстові файли за допомогою утиліти txt2bmp.exe перетворюються на графічне зображення. br/>
.4.2 Виведення інформації про розпізнаних фігурах
Інформація про розпізнаних фігурах виводиться в текстовий файл. Якщо виявлена ​​фігура є трикутником, то виводиться список його вершин, інакше - виводиться ліва-верхня і права-нижня вершини квадрата, що обмежує дану фігуру. br/>В
Рис. 9. Виділення кордонів фігури. br/>
2.5 Застосування макросів у програмі
М ГЎ крос - програмний об'єкт, який під час обчислення замінюється на новий об'єкт, створюваний визначенням макросу на основі його аргументів, потім виражається звичайним чином.
У розробленій програмі макрос використовується при пошуку трикутників, як параметр в макрос передається функція, що визначає чи є фігура трикутником. Нижче представлений код макросу і функція, яка його викликає:
(defmacro get-shades (checker)
`(dolist (points shades)
(setq triangles (append triangles (list (, checker points))))
)
)
(defun get-all-triangles ()
(get-shades check-triangle)
)
2.6 Блок-схема програми
...