# Das Handbuch zu &rocs;

## Einführung

&rocs; wurde als Entwicklungsumgebung für die Graphentheorie entwickelt, damit Professoren die Ergebnisse von Graphen-Algorithmen Ihren Studenten zeigen können und damit die Studenten die Algorithmen verstehen lernen.

&rocs; kann durch Skripte in Qt Script erweitert werden. Mit diesen Skripten kann ein gezeichneter Graph bearbeitet werden. Jede Änderung des Graphen durch das Skript wird in der Darstellung angezeigt.

## Arbeiten mit &rocs;

Die Benutzerschnittstelle besteht aus zwei Teilen:

- Oben rechts zeichnen Sie Ihre Graphen, unten rechts geben Sie die Algorithmen ein.

- Auf der linken Seite werden alle geöffneten Graphen angezeigt. Es können mehrere Graphen in einer Datei enthalten sein.

### Globale Einstellungen von &rocs;

Auf der linken Seite des Hauptfensters werden alle Einstellungen der geöffneten Graphen angezeigt. Diese Einstellungen gelten global für jeden Graphen. Die einzelnen Knoten und Kanten können in den Dialogen Knoteneigenschaften und Kanteneigenschaften geändert werden.

- Graphenname

- Knotenfarbe der neu erstellten Knoten. Um die Farbe für alle aktuellen Knoten zu ändern, wahlen Sie den Knopf Alle.

- Kantenfarbe

Die letzte Teil der Optionen besteht aus umschaltbaren Knöpfen:

- Namen anzeigen in: Knoten oder Kanten.

- Werte anzeigen in: Knoten oder Kanten.

### &rocs;-Werkzeugleisten

Es gibt oben zwei Werkzeugleisten. In der Haupt-Werkzeugleiste finden Sie:

- Knoten verschieben: Bewegt einen Knoten im Zeichenbereich herum.

- Knoten verschieben: Erstellt einen neuen Knoten an der Klickposition im Zeichenbereich.

- Kante hinzufügen: Erstellt eine neue Kante zwischen zwei Knoten.

- Auswählen: Elemente durch anklicken auswählen.

- Löschen: Elemente durch Anklicken löschen.

- Verwenden Sie die Aktionen in der Layout-Werkzeugleiste, um die ausgewählten Knoten auszurichten.

Klicken mit der &RMBn; auf einen Knoten oder eine Kante öffnet den Eigenschaftendialog für diese Element.

Die Layout-Werkzeugleiste enthält mehrere Aktionen um Elemente im Zeichenbereich auszurichten.

Um Knoten auszurichten, aktivieren Sie das Werkzeug Auswählen, Klicken und Ziehen mit gerückter &LMBr; ein Rechteck um die Objekte und wählen dann die gewünschte Ausrichtung.

## Skripte für &rocs;

Wenn der Graph auf dem Bildschirm angezeigt wird, können Sie mit dem Schreiben des Skripts beginnen. Die Sprache verwendet eine ähnliche Syntax wie JavaScript. Im Folgenden werden die Objekte Graph, Knoten und Kante gezeigt.

### Graph

    array list_nodes();
         array list_edges();
         node add_node(name);
         edge add_edge(from, to);
         node node_byname(QString& name);
         node begin_node();
         array end_nodes();

Graphenvariablen, die geändert werden können:

    bool directed
         bool automate
         string name
         string nodeDefaultColor // in HEXA
         string edgeDefaultColor  // in HEXA

### Knoten

    array adj_nodes();
         array adj_edges();
         array  input_edges();
         array output_edges();
         array loop_edges();
         array connected_edges(Node *n);
         void self_remove();

Knotenvariablen:

    double x
        double y
        double width
        string value
        string name
        string color  // in HEXA
        bool begin
        bool end

### Kanten

    string color ( em hexa )
        string value
        string name
        double width
        string style ( dot, dash, dash dot, solid )

        node start();
        node  end();

        void self_remove();

### Ein Beispiel

Hier ist ein einfaches Beispielskript, das die Farben der ersten 4 Knoten im ersten Graphen festlegt:

    /* Ein einfaches Beispiel, das die Farben der ersten 4 Knoten im ersten Graphen festlegt: */

    var colours = new Array("red", "green", "blue", "yellow");

    /* graphs ist ein Feld von Graphen, Zugriff auf einen Graph ist über den Index im
    Feld oder über den Namen möglich. Wenn der erste Graph Untitled0 genannt wurde,
    können Sie auf folgende Art auf den Graphen zugreifen  */
    var list1= graphs[0].list_nodes();   //  Erste Form.
    var list2=Untitled0.list_nodes();     // Zweite Form

     for ( var i = 0; i < colours.length; i++){
            if (i
    > list2.length) break;
            list2[i].color = colours[i]
     }

## Befehlsreferenz

### Menüs und Kurzbefehle

#### Das Menü Datei

&Ctrl; Q Datei Beenden

- Beendet &rocs;

#### Das Menü Einstellungen

Einstellungen Angezeigte Werkzeugleisten

- Blendet die Haupt-Werkzeugleiste und die Layout-Werkzeugleiste ein oder aus.

Einstellungen Statusleiste anzeigen

- Zeigt die Statusleiste an bzw. blendet sie aus.

Einstellungen Kurzbefehle festlegen ...

- Öffnet den &kde;-Standarddialog zur Konfiguration von Tastaturkürzeln.

Einstellungen Werkzeugleisten einrichten ...

- Richtet die Einträge ein, die Sie in der Werkzeugleiste haben möchten.

#### Das Menü Hilfe

&help.menu.documentation;

## Danksagungen und Lizenz

&rocs;

Programm Copyright 2009 Tomaz Canabrava tcanabrava at kde dot org

Dokumentation Copyright 2009 &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; und Tomaz Canabrava tcanabrava at kde dot org

Burkhard Lücklueck@hube-lueck.de

&underFDL; &underGPL;

## Installation

### Wie Sie &rocs; erhalten

&install.intro.documentation;

### Kompilierung und Installation

&install.compile.documentation;
&documentation.index;