Grundsätzlich ja, so finded man von einander losgelöste Sketch-Teile die man einzeln Lösen kann. Das wird aktuell auch so gemacht.tom wrote:Dass das hochkomplex ist, merke ich auch schon eine Weile. Ich verfolge ja auch mit Interesse die Entwicklung bezüglich robuster Referenzen und suche auch selbst nach brauchbaren Lösungen. Bin jedoch bisher kläglich daran gescheitert. Doch zurück zum Thema: An zusätzliche Graphen zur Lösung des Problems hatte ich auch gedacht. In meinem Kopf existiert derzeit folgender Algorithmus, von einander unabhängige Teile eines Sketches zu lösen:ickby wrote:Das Problem ist mathematisch hochkomplex. In kommerziellen Systemen wird zusätzlich zu den numerischen auf Graphen-basierte Algorithmen zurückgegriffen, es gibt aber keinen geschlossenen Algorithmus der garantiert alle Lösungen zu finden.Könnte das funktionieren?
- Zunächst wird ein Graph mit den Elementen des Sketches als Knoten (Vertexes und Edges). Die Constraints des Sketches bilden die Kanten im Graphen, wobei sie jene Knoten verbinden, die direkt von den Constraints berührt werden. Die Art des Contraints ist für die Kante im Graphen ohne Belang.
- Nun werden Spanning Trees im Graphen gesucht. Die Spanning Trees müssen nicht zwingenderweise minimal sein. Es reicht, sie überhaupt zu finden. Die Operation kostet O(n), wobei n die Anzahl der Knoten im Graphen ist. Die Spanning Trees umfassen jeweils die von uns gesuchten voneinander unabhängigen Teile des Sketches.
- Pro Spanning Tree wird nun ein Gleichungssystem aufgestellt und wie bisher auch gelöst.
Den Satz habe ich nicht ganz verstanden.ickby wrote:Aber dem User anzeigen, was schon fest ist, werden wir trotzdem nicht. Wenn man das macht muss man sicherstellen das es alles anzeigt. Und das können wir nicht.
VG Thomas
Das hilft nur für das hier beschriebene Problem nicht. Wie du richtig beschrieben hast sind Sketch-Teile miteinander Verbunden, sobald eine Beschränkung besteht, auch wenn die Kantenzüge voneinander getrennt sind. Das Ergebnis is extrem unintuitiv: Erst wird ein Teilsketch als vollständig beschränkt angezeigt, und auf einmal, wenn man eine Beschränkung hinzufügt, die an der Bestimmtheit nichts ändert, ist er auf einmal nicht mehr voll beschränkt. Das verwirrt viel mehr als alles andere.
Ich meine damit das das Grundlegende Problem eigentlich ist, zu erkennen, ob eine Geometrie (also Line, Kreis etc.) noch freiheitsgrade hat oder nicht. Wenn man anfängt, solche Freiheitsgrade anzuzeigen, muss man sicherstellen, das es das immer richtig anzeigt. Erst wenn man das kann sollte man das feature einführen, den es ist viel verwirrender solch ein Feature zu haben was nicht richtig funktioniert und worauf man sich ann sowieso nicht verlasen kann als es nicht zu haben.Den Satz habe ich nicht ganz verstanden.
Das anzeigen für Kantenzügen ist nur eine besondere Form des Problems. Und es gilt auch da: Man muss die Freiheitsgrade der Kantenzüge zuverlässig erkennen können bevor man sie Anzeigt. Und das geht so leider nicht.