Results 1 to 6 of 6
  1. #1
    Adok's Avatar
    Title
    Baccalaureus
    Join Date
    Sep 2004
    Location
    Wien
    Posts
    994
    Thanks Thanks Given 
    105
    Thanks Thanks Received 
    103
    Thanked in
    85 Posts

    Alternative zu GraphViz

    Ich suche eine Alternative zu GraphViz, die es erlaubt, Knoten aufgrund ihrer Position auf dem Bildschirm zu sortieren. In GraphViz ist das nicht möglich, weil dort die dafür zuständigen Variablen und Methoden als "private" deklariert sind.

  2. #2
    Christoph R.'s Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Posts
    2,339
    Thanks Thanks Given 
    73
    Thanks Thanks Received 
    255
    Thanked in
    145 Posts
    Wonach genau soll sortiert werden?

    Sobald es (mindestens) zweidimensional ist gibt es keine eindeutige Ordnung der Koordinaten mehr. Vermutlich ist das auch der Grund wieso GraphViz keine fix fertigen Methoden anbietet. Ich nehme an du hast irgendein custom criterion im Kopf, das man aber wohl mit jeder Bibliothek implementieren kann.

  3. #3
    Adok's Avatar
    Title
    Baccalaureus
    Join Date
    Sep 2004
    Location
    Wien
    Posts
    994
    Thanks Thanks Given 
    105
    Thanks Thanks Received 
    103
    Thanked in
    85 Posts
    Nunja, man könnte zum Beispiel nach der Y-Koordinate sortieren, oder eben primär nach der Y- und sekundär nach der X-Koordinate. Wenn der Benutzer die Reihenfolge der Knoten ändern möchte, indem er den letzten Knoten stark nach oben verschiebt, ist relativ klar, was er damit meint. Genau das wird von GraphViz nicht berücksichtigt. Die Knoten werden zwar von oben nach unten in der Reihenfolge angezeigt, wie sie im Array gespeichert sind. Verschiebe ich aber einen Knoten, hat das keinen Einfluss auf die Reihenfolge im Array. Schließe ich das Fenster und öffne es erneut, werden die Knoten wieder in der ursprünglichen Reihenfolge angezeigt.

    Derzeit besteht aus Sicht des Benutzers die einzige Möglichkeit darin, Knoten zu löschen und wieder neu (in der gewünschten Reihenfolge) einzufügen. Das ist natürlich äußerst umständlich und unbefriedigend.

  4. #4
    Christoph R.'s Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Posts
    2,339
    Thanks Thanks Given 
    73
    Thanks Thanks Received 
    255
    Thanked in
    145 Posts
    Quote Originally Posted by Adok View Post
    Nunja, man könnte zum Beispiel nach der Y-Koordinate sortieren, oder eben primär nach der Y- und sekundär nach der X-Koordinate.
    Das meine ich mit custom criterion.

    Wenn der Benutzer die Reihenfolge der Knoten ändern möchte, indem er den letzten Knoten stark nach oben verschiebt, ist relativ klar, was er damit meint. Genau das wird von GraphViz nicht berücksichtigt. Die Knoten werden zwar von oben nach unten in der Reihenfolge angezeigt, wie sie im Array gespeichert sind. Verschiebe ich aber einen Knoten, hat das keinen Einfluss auf die Reihenfolge im Array. Schließe ich das Fenster und öffne es erneut, werden die Knoten wieder in der ursprünglichen Reihenfolge angezeigt.
    Ich finde es macht Sinn die interne Repräsentation nicht zu ändern nur weil sich die Eigenschaften der Knoten (die Koordinaten) ändern. Es ist ja für den Benutzer im Prinzip egal wie die Objekte intern gespeichert werden.

    Wenn du für eine bestimmte Anwendung eine solche Sortierung brauchst, was spricht dagegen sie selbst vorzunehmen?

  5. #5
    Adok's Avatar
    Title
    Baccalaureus
    Join Date
    Sep 2004
    Location
    Wien
    Posts
    994
    Thanks Thanks Given 
    105
    Thanks Thanks Received 
    103
    Thanked in
    85 Posts
    Mir ist nicht klar, warum du mein Problem nicht verstanden hast bzw. warum es für dich offenbar nicht nachvollziehbar ist.

    Ich kann eben von meinem Programm heraus nicht auf die Bildschirmpositionen zugreifen, weil diese in als "private" deklarierten Variablen gespeichert sind! Wenn ich das könnte, wäre die Angelegenheit trivial und ich hätte diesen Thread nicht gestartet.

  6. #6
    Christoph R.'s Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Posts
    2,339
    Thanks Thanks Given 
    73
    Thanks Thanks Received 
    255
    Thanked in
    145 Posts
    Quote Originally Posted by Adok View Post
    Mir ist nicht klar, warum du mein Problem nicht verstanden hast bzw. warum es für dich offenbar nicht nachvollziehbar ist.

    Ich kann eben von meinem Programm heraus nicht auf die Bildschirmpositionen zugreifen, weil diese in als "private" deklarierten Variablen gespeichert sind! Wenn ich das könnte, wäre die Angelegenheit trivial und ich hätte diesen Thread nicht gestartet.
    I see. Es klang für mich oben so als ob du nach einer Möglichkeit zur automatischen Sortierung suchst. Wenn die Koordinaten auch nicht public sind, dann geht das natürlich nicht.

    Boost hat eine Graphenbibliothek dabei die ich verwende. Ich verwende es nicht für visuelles Layouting, aber es wird unterstützt, und einer kurzen Recherche nach kann es was du brauchst.

    Ansonsten, wenn es wirklich nur am access modifier liegt, vielleicht kann man das über einen Patch für die source-Version hinbiegen.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •