Графічне представлення орієнтованого графа засобами Delphi

В параграфі Графічне представлення графа засобами Delphi ми створили проект, який малював неорієнтований граф на канві компонента Image1. Сьогодні розглянемо алгоритм побудови орієнтованого графа, тобто графа ребрам якого присвоєно певний напрямок. Послідовність дій при побудові вершин орієнтованого графа аналогічна послідовності дій, яку ми здійснювали у випадку неорієнтованого. Проте, процес побудови орієнтованого ребра дещо відрізняється. Для того, щоб нарисувати орієнтоване ребро, будемо використовувати наступний алгоритм: нехай маємо дві вершини графа (зображені у вигляді кола з центром у точках V1 та V2 і радіусом r). Для того, щоб побудувати ребро проведемо від точки V1 до V2 пряму лінію. Далі для того, щоб задати напрямок необхідно знайти точку перетину кола з центром в точці V2 та радіусом r з прямою, яка прорходить через дві точки V1 та V2. В результаті отримаємо деяку точку A. Далі, побудуємо деяке уявне коло з радіусом r1 (на малюнку зображено штрихпунктирною лінією), і знову знайдемо точку перетину даного кола з прямою V1V2. Отримуємо деяку точку B. Після того, як координати точки B відомі, виконуємо поворот даної точки відносно точки A, проти годинникової стрілки на кут l. В результаті отримуємо точку B1. Аналогічно, виконуємо поворот точки B за годинниковою стрілкою — отримуємо точку B2. Таким чином ми отримали трикутник AB1B2, який і буде вказувати напрямок орієнтованого ребра.

Читати повністю

Графічне представлення графа засобами Delphi

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

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

Читати повністю

« Попередня сторінка