dwww Home | Show directory contents | Find package

<FILENAME filename="index.html"><html><head><title>Підручник з Rocs</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="description" content="Rocs — інструмент побудови та перегляду графів."><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="next" href="introduction.html" title="Розділ 1. Вступ"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Підручник з <span class="application">Rocs</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="introduction.html">далі</a></td></tr></table></div><div id="contentBody"><div lang="uk" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="rocs"></a>Підручник з <span class="application">Rocs</span></h1></div><div><div class="authorgroup"><p class="author"><span class="firstname">Tomaz</span> <span class="surname">Canabrava</span> <code class="email">&lt;tomaz.canabrava@gmail.com&gt;</code></p><p class="author"><span class="firstname">Andreas</span> <span class="surname">Cord-Landwehr</span> <code class="email">&lt;cordlandwehr@kde.org&gt;</code></p><span class="othercredit"><span class="contrib">Переклад українською</span>: <span class="firstname">Юрій</span> <span class="surname">Чорноіван</span><br></span></div></div><div>версія <span class="releaseinfo">KDE Gear 21.08 (<span class="date">23 жовтня 2021 року</span>)</span></div><div><p><a href="help:/kdoctools5-common/fdl-notice.html">Правова примітка</a></p></div><div><div><div class="abstract"><p><span class="application">Rocs</span> — інструмент побудови та перегляду графів. </p></div></div></div></div><hr></div><div class="toc"><p><b>Зміст</b></p><dl class="toc"><dt><span class="chapter"><a href="introduction.html">1. Вступ</a></span></dt><dd><dl><dt><span class="sect1"><a href="introduction.html#introduction-goals">Мета, цільова аудиторія програми та процес роботи з нею</a></span></dt><dt><span class="sect1"><a href="introduction-nutshell.html">Ядро <span class="application">Rocs</span></a></span></dt><dd><dl><dt><span class="sect2"><a href="introduction-nutshell.html#idm79">Документи графів</a></span></dt><dt><span class="sect2"><a href="introduction-nutshell.html#idm85">Типи ребер</a></span></dt><dt><span class="sect2"><a href="introduction-nutshell.html#idm88">Типи вузлів</a></span></dt><dt><span class="sect2"><a href="introduction-nutshell.html#idm91">Властивості</a></span></dt></dl></dd><dt><span class="sect1"><a href="introduction-tutorial.html">Покрокові настанови</a></span></dt><dd><dl><dt><span class="sect2"><a href="introduction-tutorial.html#idm107">Створення графу</a></span></dt><dt><span class="sect2"><a href="introduction-tutorial.html#idm116">Створення типів елементів</a></span></dt><dt><span class="sect2"><a href="introduction-tutorial.html#idm126">Алгоритм</a></span></dt><dt><span class="sect2"><a href="introduction-tutorial.html#idm130">Виконання алгоритму</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="user-interface.html">2. Інтерфейс користувача <span class="application">Rocs</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="user-interface.html#user-interface-all">Основні елементи інтерфейсу користувача</a></span></dt></dl></dd><dt><span class="chapter"><a href="scripting.html">3. Скрипти</a></span></dt><dd><dl><dt><span class="sect1"><a href="scripting.html#idm224">Виконання алгоритмів у <span class="application">Rocs</span></a></span></dt><dd><dl><dt><span class="sect2"><a href="scripting.html#idm229">Керування виконанням скриптів</a></span></dt><dt><span class="sect2"><a href="scripting.html#idm245">Дані, виведені скриптом</a></span></dt><dt><span class="sect2"><a href="scripting.html#idm251">Інтерфейс (API) роботи зі скриптами</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="import-export.html">4. Імпортування та експортування</a></span></dt><dd><dl><dt><span class="sect1"><a href="import-export.html#import-export-projects">Обмін проєктами <span class="application">Rocs</span></a></span></dt><dd><dl><dt><span class="sect2"><a href="import-export.html#import-export-graphs">Імпортування та експортування документів графів</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="graph-layout.html">5. Компонування графу</a></span></dt><dd><dl><dt><span class="sect1"><a href="graph-layout.html#idm342">Автоматичне компонування графів у <span class="application">Rocs</span></a></span></dt><dd><dl><dt><span class="sect2"><a href="graph-layout.html#idm353">Компонування на основі сил</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="credits.html">6. Подяки і ліцензія</a></span></dt></dl></div><FILENAME filename="introduction.html"><html><head><title>Розділ 1. Вступ</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="index.html" title="Підручник з Rocs"><link rel="prev" href="index.html" title="Підручник з Rocs"><link rel="next" href="introduction-nutshell.html" title="Ядро Rocs"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Вступ</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">назад</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="introduction-nutshell.html">далі</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="introduction"></a>Розділ 1. Вступ</h1></div></div></div><p>У цьому розділі наведено короткий огляд основних можливостей та прийомів роботи у <span class="application">Rocs</span>. Користувачам, які хочуть негайно перейти до навчання принципам роботи у <span class="application">Rocs</span>, ми пропонуємо перейти до читання розділу <a class="xref" href="introduction-nutshell.html" title="Ядро Rocs">«Ядро <span class="application">Rocs</span>»</a>, користуючись настановами розділу <a class="xref" href="scripting.html" title="Розділ 3. Скрипти">Розділ 3, <i>Скрипти</i></a> щодо написання алгоритмів. </p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction-goals"></a>Мета, цільова аудиторія програми та процес роботи з нею</h2></div></div></div><p><span class="application">Rocs</span> — комплексний інструмент для теорії графів, призначене для всіх, хто цікавиться розробкою та вивченням алгоритмів, пов’язаних з графами. Це зокрема</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>викладачі, які хочуть продемонструвати роботу алгоритмів, пов’язаних з графами, студентам,</p></li><li class="listitem"><p>студенти і дослідники, які бажають краще розібратися у роботі алгоритмів,</p></li><li class="listitem"><p>усі, хто цікавиться структурами даних та алгоритмами.</p></li></ul></div><p>Для усіх цих користувачів у <span class="application">Rocs</span> передбачено простий у користуванні графічний редактор для створення графів, потужний рушій для роботи зі скриптами та виконання алгоритмів, а також декілька допоміжних інструментів для імітацій, експериментів та експортування графів. Типовим способом використання <span class="application">Rocs</span> є створення графу або вручну (тобто перетягуванням вершин і ребер на полотно), або а допомогою засобів створення графів. Після цього можна реалізувати і виконати алгоритми обробки графів для створеного графу. Усі внесені алгоритмом зміни буде негайно показано у редакторі графів. </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="rocs-screenshot.png" alt="Знімок вікна Rocs."></div></div></div><FILENAME filename="introduction-nutshell.html"><html><head><title>Ядро Rocs</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="introduction.html" title="Розділ 1. Вступ"><link rel="prev" href="introduction.html" title="Розділ 1. Вступ"><link rel="next" href="introduction-tutorial.html" title="Покрокові настанови"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Ядро <span class="application">Rocs</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction.html">назад</a></td><td class="upCell">Вступ</td><td class="nextCell"><a accesskey="n" href="introduction-tutorial.html">далі</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction-nutshell"></a>Ядро <span class="application">Rocs</span></h2></div></div></div><p>Загалом, кожен сеанс <span class="application">Rocs</span> є проєктом: під час запуску <span class="application">Rocs</span> створюється порожній проєкт; якщо завантажуєтеся якийсь проєкт, він стає поточним. Сам проєкт складається з <span class="emphasis"><em>документів графів</em></span>, <span class="emphasis"><em>скриптів або алгоритмів</em></span> та <span class="emphasis"><em>журналу</em></span>. </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm79"></a>Документи графів</h3></div></div></div><p>Документ графу відтворює вміст полотна у редакторі графів. У ньому містяться дані щодо визначених користувачем типів вузлів та ребер, їхніх властивостей, а також щодо вже створених вузлів і ребер. Тобто, <span class="application">Rocs</span> вважає набір усіх вузлів і ребер документа графів (необов’язково з’єднаних) самим графом. Доступ до усіх елементів документа графу можна отримати за допомогою рушія обробки скриптів та загального об’єкта <strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>Document</strong></span></span></code></strong>. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm85"></a>Типи ребер</h3></div></div></div><p>Іноді, граф може складатися із ребер різних типів (наприклад, незорієнтований граф плюс ребра дерева, обчислені за допомогою алгоритму пошуку у ширину), які слід обробляти і показувати у різний спосіб. Для цього, окрім типового типу ребер, ви можете визначити довільні інші типи ребер. Кожен тип ребер має власне візуальне представлення, динамічні властивості, а також може бути орієнтованим або незорієнтованим. У інтерфейсі написання скриптів передбачено зручні методи для доступу до ребер певних типів. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm88"></a>Типи вузлів</h3></div></div></div><p>Аналогічно до типів ребер ви можете визначити різні типи вершити графу (наприклад, надати певним вершинам особливі ролі). У кожного типу вершин (вузлів) передбачено власне представлення та динамічні властивості. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm91"></a>Властивості</h3></div></div></div><p>Кожен елемент (вершини або ребра) може мати властивості. Ці властивості має бути визначено у відповідному типі вершин або ребер. Властивості ідентифікуються за назвами і можуть містити будь-які значення. Доступ до властивостей виконується за назвами. Для створення або внесення змін до наявних властивостей слід використовувати бічну панель <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Типи елементів</span></span>. Для відкриття діалогового вікна властивостей слід використовувати кнопку <span class="inlinemediaobject"><img src="document-properties.png"></span><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Властивості</span></span>. </p><p>Крім того, ви можете скористатися рушієм обробки скриптів для доступу до зареєстрованих властивостей та зміни їхніх значень. У наведеному нижче прикладі ми припускаємо, що властивість «weight» зареєстровано для типового типу ребер. </p><pre class="programlisting">var nodes = Document.nodes()
for (var i = 0; i &lt; nodes.length; ++i){
    nodes[i].weight = i;
}
for (var i = 0; i &lt; nodes.length; ++i){
    Console.log("weight of node " + i + ": " + nodes[i].weight);
}
</pre><p>
</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="introduction-tutorial.html">далі</a></td></tr><tr><td class="prevCell">Вступ </td><td class="upCell">Вступ</td><td class="nextCell"> Покрокові настанови</td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="introduction-tutorial.html"><html><head><title>Покрокові настанови</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="introduction.html" title="Розділ 1. Вступ"><link rel="prev" href="introduction-nutshell.html" title="Ядро Rocs"><link rel="next" href="user-interface.html" title="Розділ 2. Інтерфейс користувача Rocs"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Покрокові настанови</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction-nutshell.html">назад</a></td><td class="upCell">Вступ</td><td class="nextCell"><a accesskey="n" href="user-interface.html">далі</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction-tutorial"></a>Покрокові настанови</h2></div></div></div><p>У цьому розділі ми створимо приклад проєкту для вивчення декількох найважливіших можливостей <span class="application">Rocs</span>. Метою є створення графу та скрипту для ілюстрування простого 2-апроксимаційного алгоритму розв’язування задачі <span class="emphasis"><em>мінімального вершинного покриття</em></span>. Задача мінімального вершинного покриття полягає у визначенні підмножини вузлів графу C мінімального розміру, такої, що кожне з ребер графу з’єднано з принаймні одним вузлом з C. Відомо, що ця задача має NP-складність. Ми хочемо проілюструвати спосіб визначення парної апроксимації обчисленням відповідника вказаного графу. </p><p>Нашою метою буде візуалізації зв’язку між відповідностями і мінімальним вершинним покриттям. Для цього ми визначимо два типи ребер: один для показу відповідних ребер і ще один для показу звичайних ребер; а також два типи вузлів, за допомогою яких відрізнятимемо вузли, що належать до C, і вузли, що не належать до C. </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm107"></a>Створення графу</h3></div></div></div><p>Для створення графу скористаймося типовим засобом створення графів <span class="application">Rocs</span>. Викликати цей засіб можна за допомогою пункту основного меню <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Документ графу</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Інструменти</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Створити граф</span></span>. Виберемо <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Випадковий граф</span></span> з 30 вузлами, 90 ребрами і зреном 1 (зерном є початкове значення для генератора випадкових значень; використання одного зерна призведе до створення тих самих графів). </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm116"></a>Створення типів елементів</h3></div></div></div><p>Ми скористаємося панеллю <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Типи елементів</span></span> і створимо другий тип вершин, а також другий тип ребер. Для обох нових типів ми відкриємо діалогове вікно властивостей за допомогою відповідних кнопок <span class="inlinemediaobject"><img src="document-properties.png"></span><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Властивості</span></span> і встановимо ідентифікатори у значення <code class="literal">2</code>. Далі, ми змінимо кольори елементів цих двох нових типів (для того, щоб їх було просто відрізнити від типових типів). Нарешті, ми встановимо двоспрямований тип ребер і визначимо для ідентифікаторів типових типів значення <code class="literal">1</code>. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm126"></a>Алгоритм</h3></div></div></div><p>Нарешті, нам слід реалізувати алгоритм апроксимації. Для цього ми скористаємося таким кодом: </p><pre class="programlisting">for (var i=0; i &lt; Document.nodes.length; i++) {
    Document.nodes[i].type = 1;
}
for (var i=0; i &lt; Document.edges.length; i++) {
    Document.edges[i].type = 1;
}

var E = Document.edges(); // набір необроблених ребер
var C = new Array();      // відповідні ребра
while (E.length 
&gt; 0) {
    var e = E[0];         // беремо перше ребро e={u,v}
    var u = e.from();
    var v = e.to();
    e.type = 2;           // робимо ребро відповідним
    E.shift();            // вилучити e (тобто E[0]) зі списку ребер
    C.push(u);            // додати u до C
    C.push(v);            // додати v до C

    // позначити u,v як вузли у C
    u.type = 2;
    v.type = 2;

    // вилучити з E усі ребра, суміжні з u або v
    var adjacent = u.edges();
    for (var i=0; i &lt; adjacent.length; i++) {
        var index = E.indexOf(adjacent[i]); // знайти індекс
        if (index != -1) {
            E.splice(index, 1); // вилучити його, якщо знайдено
        }
    }
    var adjacent = v.edges();
    for (var i=0; i &lt; adjacent.length; i++) {
        var index = E.indexOf(adjacent[i]); // знайти індекс
        if (index != -1) {
            E.splice(index, 1); // вилучити його, якщо знайдено
        }
    }
}
Console.log("Покриття вершин містить " + C.length + " вузлів.");
</pre></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm130"></a>Виконання алгоритму</h3></div></div></div><p>Алгоритм можна виконати за допомогою кнопки <span class="inlinemediaobject"><img src="media-playback-start.png"></span><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Виконати</span></span> на панелі керування скриптами. </p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction-nutshell.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="user-interface.html">далі</a></td></tr><tr><td class="prevCell">Ядро <span class="application">Rocs</span> </td><td class="upCell">Вступ</td><td class="nextCell"> Інтерфейс користувача <span class="application">Rocs</span></td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="introduction-nutshell.html">далі</a></td></tr><tr><td class="prevCell">Підручник з <span class="application">Rocs</span> </td><td class="upCell"> </td><td class="nextCell"> Ядро <span class="application">Rocs</span></td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="user-interface.html"><html><head><title>Розділ 2. Інтерфейс користувача Rocs</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="index.html" title="Підручник з Rocs"><link rel="prev" href="introduction-tutorial.html" title="Покрокові настанови"><link rel="next" href="scripting.html" title="Розділ 3. Скрипти"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Інтерфейс користувача <span class="application">Rocs</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction-tutorial.html">назад</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="scripting.html">далі</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="user-interface"></a>Розділ 2. Інтерфейс користувача <span class="application">Rocs</span></h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="user-interface-all"></a>Основні елементи інтерфейсу користувача</h2></div></div></div><p>Інтерфейс користувача програми поділено на декілька логічних частин, як це показано на наведеному нижче знімку. </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="rocs-interfaces.png" alt="Елементи графічного інтерфейсу Rocs."></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">Редактор графів</span></dt><dd><p>У редакторі передбачено панель полотна, на якій можна розташовувати вершини і ребра. Подвійне клацання на будь-якому з елементів цієї панелі відкриває відповідне меню властивостей. Ви можете скористатися цими інструментами за допомогою <span class="emphasis"><em>вкладок бічної панелі</em></span> для створення та редагування графів.</p><p>Доступні інструменти:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Згори ліворуч на панелі розташовано вказані нижче кнопки дій. Натискання кнопки дії, означатиме, що вказівник миші виконуватиме відповідну дію на панелі редактора графів:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><span class="inlinemediaobject"><img src="sc-actions-rocsselect.png"></span><span class="guiicon">Позначити і пересунути</span>: щоб позначити елементи, натисніть ліву кнопку миші на порожньому місці на графі, утримуйте кнопку натисненою і рухом вказівника миші створіть прямокутник, у якому міститимуться елементи даних та/або ребра. Якщо треба позначити окремий елемент, просто клацніть лівою кнопкою миші на цьому елементі. Якщо ви наведете вказівник миші на позначений елемент або набір елементів, натиснете і утримуватимете натисненою ліву кнопку миші, а потім почнете рухати вказівник, разом з ним почнуть рухатися позначені елементи. Пересунути позначені елементи можна також за допомогою клавіш зі стрілочками.</p></li><li class="listitem"><p><span class="inlinemediaobject"><img src="sc-actions-rocsnode.png"></span><span class="guiicon">Створити вузол</span>: клацніть у довільній точці панелі редактора, щоб створити новий вузол, який належатиме поточній позначеній структурі даних. Якщо ви продовжите утримувати кнопку миші, програма покаже контекстне меню, за допомогою якого ви зможете вибрати тип даних нового елемента (якщо передбачено різні типи даних елементів).</p></li><li class="listitem"><p><span class="inlinemediaobject"><img src="sc-actions-rocsedge.png"></span><span class="guiicon">Створити ребро</span>: наведіть вказівник миші на позицію першого вузла, натисніть і утримуйте натисненою ліву кнопку миші, перетягніть вказівник до позиції другого вузла, до якого має прямувати ребро. Виконати цю дію можна буде, лише якщо у поточному графі можливе додавання такого ребра (наприклад, у незорієнтованому графі не можна додавати декілька ребер між двома вузлами). Якщо ви утримуватимете натисненою кнопку миші і далі, програма покаже меню, за допомогою якого можна буде вибрати тип ребра (якщо типи ребер передбачено поточним типом графу).</p></li><li class="listitem"><p><span class="inlinemediaobject"><img src="sc-actions-rocsdelete.png"></span><span class="guiicon">Вилучити елемент</span>: клацніть на елементі графу, щоб його вилучити. Якщо ви вилучите вузол, всі ребра, які з ним з’єднано, також буде вилучено.</p></li></ul></div></li></ul></div></dd><dt><span class="term">Бічна панель</span></dt><dd><p>Праворуч розташовано бічну панель, за допомогою якої можна отримати доступ до декількох робочих інструментів:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Типи елементів</span></span>: за допомогою цього віджета можна отримати безпосередній доступ до доступних типів ребер і вузлів.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Журнал</span></span>: у кожного з проєктів є власний журнал, яким можна скористатися, наприклад, для занотовування завдань, результатів та спостережень.</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Програмний інтерфейс для роботи зі скриптами</span></span>: за допомогою цього віджета можна отримати безпосередній доступ до документації зі скриптів.</p></li></ul></div></dd><dt><span class="term">Редактор скриптів</span></dt><dd><p>У полі цього текстового редактора ви можете створювати скрипти алгоритмів у спосіб, описаний у розділі <a class="xref" href="scripting.html" title="Розділ 3. Скрипти">Розділ 3, <i>Скрипти</i></a>. Ви можете працювати одночасно над декількома алгоритмами: для цього достатньо відкрити або створити декілька вкладок скриптів за допомогою головного меню програми.</p></dd><dt><span class="term">Дані, виведені скриптом:</span></dt><dd><p>До цього поля програма виводитиме діагностичні повідомлення або дані, виведені скриптом, залежно від перемикача у верхній частині цього віджета. Якщо під час виконання скрипту станеться помилка, програма негайно перемкнеться у режим діагностичних повідомлень.</p></dd><dt><span class="term">Керування</span></dt><dd><p>На цій панелі розташовано елементи керування виконанням скриптів. Ви можете наказати програмі виконати скрипт, відкритий у редакторів скриптів, натисканням кнопки <span class="inlinemediaobject"><img src="media-playback-start.png"></span><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Пуск</span></span>. Якщо виконання скрипту ще не завершено, його можна зупинити натисканням кнопки <span class="inlinemediaobject"><img src="process-stop.png"></span><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Стоп</span></span>.</p></dd></dl></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="introduction-tutorial.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="scripting.html">далі</a></td></tr><tr><td class="prevCell">Покрокові настанови </td><td class="upCell"> </td><td class="nextCell"> Скрипти</td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="scripting.html"><html><head><title>Розділ 3. Скрипти</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="index.html" title="Підручник з Rocs"><link rel="prev" href="user-interface.html" title="Розділ 2. Інтерфейс користувача Rocs"><link rel="next" href="import-export.html" title="Розділ 4. Імпортування та експортування"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Скрипти</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="user-interface.html">назад</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="import-export.html">далі</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="scripting"></a>Розділ 3. Скрипти</h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm224"></a>Виконання алгоритмів у <span class="application">Rocs</span></h2></div></div></div><p><span class="application">Rocs</span> внутрішньо використовує рушій Java Script QtScript. Це означає, що усі реалізовані вами алгоритми має бути написано мовою Java Script. Нижче ми розберемо те, як отримати доступ та змінити елементи документа графу за допомогою рушія роботи зі скриптами. Важливо зауважити, що зміни, внесені за допомогою рушія обробки скриптів, безпосередньо буде відображено у властивостях елементів редактора графів. </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm229"></a>Керування виконанням скриптів</h3></div></div></div><p>Передбачено різні режими виконання ваших алгоритмів. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
        <span class="inlinemediaobject"><img src="media-playback-start.png"></span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Виконати</span></span>: виконати скрипт, аж до завершення його роботи.</p></li><li class="listitem"><p>
        <span class="inlinemediaobject"><img src="process-stop.png"></span> <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Стоп</span></span>: припинити виконання скрипту (доступне, лише якщо виконується скрипт).</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm245"></a>Дані, виведені скриптом</h3></div></div></div><p>Під час виконання алгоритму діагностичні повідомлення та повідомлення, виведені програмою, буде показано на панелі <span class="emphasis"><em>Вивід повідомлень</em></span>. Якщо рушієм обробки скриптів буде виявлено синтаксичну помилку у вашому скрипті, відповідне повідомлення також буде показано серед діагностичних повідомлень. Зауважте, що всі повідомлення, виведені програмою, також буде показано і у списку діагностичних повідомлень (напівжирним шрифтом). </p><p>Керувати текстом, який буде виведено скриптом, можна за допомогою таких функцій: </p><pre class="programlisting">Console.log(string message);            // показати повідомлення як виведене скриптом
Console.debug(string message);          // показати повідомлення як діагностичне
Console.error(string message);          // показати повідомлення як помилку
</pre></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm251"></a>Інтерфейс (API) роботи зі скриптами</h3></div></div></div><p>Кожна з різних частин <span class="application">Rocs</span> надає статичний елемент, доступ до якого можна отримати за допомогою рушія обробки скриптів. Цими частинами є: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>Document</strong></span></span></code></strong> — документ графу;</p></li><li class="listitem"><p><strong class="userinput"><code><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="command"><span class="command"><strong>Console</strong></span></span></code></strong> — виведені до консолі записи журналу.</p></li></ul></div><p> Явне використання програмного інтерфейсу та довідку з методів можна знайти у вбудованій довідці бічної панелі <span class="application">Rocs</span>. </p></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="user-interface.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="import-export.html">далі</a></td></tr><tr><td class="prevCell">Інтерфейс користувача <span class="application">Rocs</span> </td><td class="upCell"> </td><td class="nextCell"> Імпортування та експортування</td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="import-export.html"><html><head><title>Розділ 4. Імпортування та експортування</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="index.html" title="Підручник з Rocs"><link rel="prev" href="scripting.html" title="Розділ 3. Скрипти"><link rel="next" href="graph-layout.html" title="Розділ 5. Компонування графу"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Імпортування та експортування</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="scripting.html">назад</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="graph-layout.html">далі</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="import-export"></a>Розділ 4. Імпортування та експортування</h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="import-export-projects"></a>Обмін проєктами <span class="application">Rocs</span></h2></div></div></div><p>Проєкти <span class="application">Rocs</span> можна імпортувати та експортувати у форматі файлів архівів <code class="literal">.tar.gz</code>. Такими архівами можна скористатися для обміну проєктами, імпортування та експортування можна здійснювати за допомогою пунктів меню <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Документ графу</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Імпортувати проєкт…</span></span> та <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Документ графу</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Експортувати проєкт як</span></span>, відповідно. </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="import-export-graphs"></a>Імпортування та експортування документів графів</h3></div></div></div><p>У поточній версії <span class="application">Rocs</span> передбачено підтримку імпортування та експортування даних файлів у таких форматах:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>файли DOT, також відомі як файли Graphviz</p></li><li class="listitem"><p>файли <acronym class="acronym">GML</acronym></p></li><li class="listitem"><p>Файли у форматі TGF</p></li><li class="listitem"><p>Формат KML</p></li></ul></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="format-specification-tgf"></a>Формат файлів звичайних графів (TGF)</h4></div></div></div><p><span class="emphasis"><em>Звичайний формат графів</em></span> (Trivial Graph Format або <acronym class="acronym">TGF</acronym>) є простим текстовим форматом файлів, призначеним для опису графів. Файл <acronym class="acronym">TGF</acronym> містить список визначень вузлів з прив’язкою ідентифікаторів вузлів до міток, за яким вказано список ребер. У такому форматі можливий запис лише однієї мітки на вузол і одного значення на ребро. <span class="application">Rocs</span> обробляє імпортовані графи у цьому форматі як неорієнтовані. Експортовані графи у цьому форматі міститимуть по два ребра на з’єднання, якщо з’єднання у них є двонапрямленими. </p><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a name="idm300"></a>Специфікація формату</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Файл починається зі списку вузлів (один вузол на рядок), далі має бути рядок з єдиним символом «#», за яким має йти список ребер (по одному ребру на рядок).</p></li><li class="listitem"><p>Запис вузла складається з цілого числа (ідентифікатора), пробілу і довільного рядка.</p></li><li class="listitem"><p>Запис ребра складається з двох цілих чисел (ідентифікаторів), відокремлених пробілом, пробілу та довільного рядка. Вважається, що спрямоване ребро виходить з вузла з першим ідентифікатором і прямує до вузла з другим ідентифікатором.</p></li></ul></div></div><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a name="idm309"></a>Приклад</h5></div></div></div><pre class="programlisting">1 starting node
2 transmitter
3 sink
#
1 2 blue
2 1 red
2 3 green
</pre></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="format-specification-dot"></a>Мова DOT та формат файлів графів Graphviz</h4></div></div></div><p>Мова <acronym class="acronym">DOT</acronym> є мовою текстового опису графів, у якій поєднується придатне до читання людиною представлення графів та можливості ефективної обробки графу програмами компонування. <acronym class="acronym">DOT</acronym> є типовим форматом файлів для комплексу програм для візуалізації графів Graphviz, але цей формат також широко використовується іншими програмами для обробки графів. Типовими суфіксами назв файлів у форматі <acronym class="acronym">DOT</acronym> є <code class="literal">.gv</code> та <code class="literal">.dot</code>. </p><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a name="idm320"></a>Непідтримувані можливості</h5></div></div></div><p>Програма <span class="application">Rocs</span> здатна обробляти всі файли графів, які містять дані, що відповідають специфікації мови <acronym class="acronym">DOT</acronym><a href="#ftn.idm325" class="footnote" name="idm325"><sup class="footnote">[1]</sup></a>. Передбачено повну підтримку можливостей мови, окрім таких виключень: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>підграфи: через відсутність концепції підграфів у <span class="application">Rocs</span>, підграфи (subgraph) імпортуються лише як набори елементів даних зі з’єднаннями. Зокрема, не імпортуються дані щодо вхідних і вихідних з’єднань між підграфами.</p></li><li class="listitem"><p>Атрибути <acronym class="acronym">HTML</acronym> і <acronym class="acronym">XML</acronym>: атрибути (зокрема мітки) що містять синтаксичні конструкції <acronym class="acronym">HTML</acronym> або <acronym class="acronym">XML</acronym> читаються без обробки. Зокрема, не виконується обробка інструкцій щодо зміни шрифтів та стилю запису з атрибутів.</p></li></ul></div></div><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a name="idm337"></a>Приклад</h5></div></div></div><pre class="programlisting">digraph myGraph {
    a -&gt; b -&gt; c;
    b -&gt; d;
}
</pre></div></div></div></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm325" class="footnote"><p><a href="#idm325" class="para"><sup class="para">[1] </sup></a>https://graphviz.org/doc/info/lang.html</p></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="scripting.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="graph-layout.html">далі</a></td></tr><tr><td class="prevCell">Скрипти </td><td class="upCell"> </td><td class="nextCell"> Компонування графу</td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="graph-layout.html"><html><head><title>Розділ 5. Компонування графу</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="index.html" title="Підручник з Rocs"><link rel="prev" href="import-export.html" title="Розділ 4. Імпортування та експортування"><link rel="next" href="credits.html" title="Розділ 6. Подяки і ліцензія"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Компонування графу</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="import-export.html">назад</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="credits.html">далі</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="graph-layout"></a>Розділ 5. Компонування графу</h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm342"></a>Автоматичне компонування графів у <span class="application">Rocs</span></h2></div></div></div><p><span class="application">Rocs</span> може виконувати компонування графів автоматично. Доступ до засобу компонування графів <span class="application">Rocs</span> можна отримати з головного меню програми: <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Документ графу</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Інструменти</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Компонування графу</span></span>. Для компонування можна застосовувати два різних алгоритми: компонування на основі сил і компонування з радіальним деревом. Щоб застосувати одне з компонувань, виберіть відповідну вкладку вікна засобу компонування графів, вкажіть бажані параметри і виконайте алгоритм натисканням кнопки <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guibutton">Гаразд</span></span>. Подробиці щодо кожного з алгоритмів компонування наведено у нижче. </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm353"></a>Компонування на основі сил</h3></div></div></div><p>Компонування на основі сил може бути застосоване до будь-яких графів. Якщо описувати цей алгоритм просто, він імітує сили, які діють на кожен з вузлів графу. Між сусідніми парами вузлів діють сили відштовхування і притягання. Величини цих сил можна вказати пересуванням відповідних повзунків у інтерфейсі користувача. </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="force-based-layout-ui-screenshot.png" alt="Знімок вікна вкладки компонування на основі сил засобу компонування графів Rocs."></div></div><p>Іншим параметром, який можна змінювати є коефіцієнт площі. Цей параметр керує розсіюванням вузлів за площею. У компонуваннях, які створено із більшими значеннями коефіцієнта площі, відстань між вузлами є більшою. </p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="idm366"></a>Компонування з радіальним деревом</h4></div></div></div><p>Компонування «радіальне дерево» може бути застосовано лише до дерев. Будь-які спроби застосувати цей алгоритм компонування до інших типів графів призводитимуть до повідомлення про помилку. Параметри компонування «радіальне дерево» може бути вибрати за допомогою відповідного інтерфейсу користувача. </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="radial-tree-layout-ui-screenshot.png" alt="Знімок вікна вкладки компонування «Радіальне дерево» засобу компонування графів Rocs."></div></div><p>Параметр типу дерева надає змогу вибрати між довільним деревоподібним компонуванням і кореневим деревоподібним компонуванням. У довільному компонуванні вузли розташовуються довільно без видимої ієрархії. У кореневому компонуванні кореневий вузол розташовується згори, а усі підлеглі дерева — під ним; це компонування надає змогу бачити ієрархію вузлів. </p><p>Параметр центру або кореня визначає, який з вузлів буде використано як кореневий для кореневого компонування або як центр для довільного компонування. Центром довільного компонування є перший вузол, який оброблятиметься алгоритмом. Усі інші вузли буде розташовано на колах із центром у центральному вузлі. Центр або корінь може бути вибрано алгоритмом компонування у автоматичному режимі. </p><p>Параметр відокремлення вузлів керує відстанню між вузлами. Збільшення значення цього параметра спричиняє збільшення відстані між вузлами. Відповідно, зменшення значення робить відстань між вузлами меншою. </p></div></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="import-export.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"><a accesskey="n" href="credits.html">далі</a></td></tr><tr><td class="prevCell">Імпортування та експортування </td><td class="upCell"> </td><td class="nextCell"> Подяки і ліцензія</td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="credits.html"><html><head><title>Розділ 6. Подяки і ліцензія</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, kdeedu, математика, математика, графи, вузол, ребро, Rocs"><link rel="home" href="index.html" title="Підручник з Rocs"><link rel="up" href="index.html" title="Підручник з Rocs"><link rel="prev" href="graph-layout.html" title="Розділ 5. Компонування графу"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Подяки і ліцензія</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="graph-layout.html">назад</a></td><td class="upCell"> </td><td class="nextCell"></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="credits"></a>Розділ 6. Подяки і ліцензія</h1></div></div></div><p><span class="application">Rocs</span> </p><p>Авторські права на програму:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Авторські права на програму належать Ugo Sangiori (ugorox AT gmail.com), 2008</p></li><li class="listitem"><p>Авторські права на програму належать Tomaz Canabrava (tcanabrava AT kde.org), 2008–2012</p></li><li class="listitem"><p>Авторські права на програму належать Wagner Reck (wagner.reck AT gmail.com), 2008–2012</p></li><li class="listitem"><p>Авторські права на програму належать Andreas Cord-Landwehr (cordlandwehr AT kde.org), 2011–2015</p></li></ul></div><p>Авторські права на документацію:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Авторські права на документацію належать <span class="firstname">Anne-Marie</span> <span class="surname">Mahfouf</span> <code class="email">(annma AT kde.org)</code>, 2009</p></li><li class="listitem"><p>Авторські права на документацію належать Tomaz Canabrava tcanabrava at kde dot org, 2009</p></li><li class="listitem"><p>Авторські права на документацію належать Andreas Cord-Landwehr (cordlandwehr AT kde.org), 2011–2015</p></li></ul></div><p>Переклад українською: Юрій Чорноіван <code class="email">(yurchor AT ukr.net)</code></p><p><a name="gnu-fdl"></a>Цей документ поширюється за умов дотримання <a class="ulink" href="help:/kdoctools5-common/fdl-translated.html" target="_top">GNU Free Documentation
License</a>.</p><p>Ця програма поширюється за умов дотримання <a class="ulink" href="help:/kdoctools5-common/gpl-translated.html" target="_top">GNU General Public License</a>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="graph-layout.html">назад</a></td><td class="upCell"><a accesskey="h" href="index.html">Початок</a></td><td class="nextCell"></td></tr><tr><td class="prevCell">Компонування графу </td><td class="upCell"> </td><td class="nextCell"> </td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="introduction.html">далі</a></td></tr><tr><td class="prevCell"> </td><td class="upCell"> </td><td class="nextCell"> Вступ</td></tr></table></div><div id="footer_text">Бажаєте прокоментувати або оновити вміст цієї сторінки?<br>Надсилайте пропозиції до <a href="mailto:kde-doc-english@kde.org" class="footer_email">Команди з документування KDE</a></div></div></div></body></html></FILENAME>

Generated by dwww version 1.15 on Thu Jun 27 16:39:56 CEST 2024.