Ich habe offene oder geschlossene 2D Linien-Züge die aus Lines und Arcs bestehen - diese möchten ich mit Constraints versehen um z.B. Linien-Längen Variable, Winkel fest oder in Ranges verändern zu können, also eine gewisse Form von flexibler Starrheit :) - der Linie-Zug + die varianten Parameter ergeben dann einen konkreten Linien-Zug Linie und Constrains als solche zu definieren und das ganze zu zeichnen macht mir keine Probleme - ich hab nur keinen Ahnung wie man so ein "eingeschränktes" System berechnen oder erkennt das es nicht gelöst werden kann, oder multiple Lösungen gibt Im Anhang habe ich z.B. aus 4 Linien ein Quader gebaut, die Winkel müssen 90 Grad bleiben und eine meiner Linien hat einen fixen X-Startpunkt, jetzt könnte ich a im dem angegebenen Range verändern - wann verschiebt sich der Quader oder wann kann er z.B. nur um "einen" Mittelpunkt expandieren, es gibt tausend Sachen zu bedenken Kenn jemand ein Tool, Library(C,C++,C#,Java,Win/Linux,egal) mit dem man solche Ideen durchspielen kann um mal eine genauere Vorstellung zu bekommen wie so was aussieht und vielleicht auch wie man das berechnen können Ich glaube die Tools auf den Screenshots machen was vergleichbares: http://solvespace.com/constraints.pl https://forum.freecadweb.org/viewtopic.php?t=2354
Üblicherweise tun das die Skizzierer in CAD-Programmen, also Fusion360 oder sowas. Alternativ könntest du dir mal Geogebra anschauen.
Sven P. schrieb: > Üblicherweise tun das die Skizzierer in CAD-Programmen, also > Fusion360 > oder sowas. > > Alternativ könntest du dir mal Geogebra anschauen. Es geht mir darum so etwas selber zu programmieren, ich brauche auch keinen Editor oder sowas ist nur für interne Berechnungen und auch nur in 2D
Vektorrechnung, Matrizenmathematik,... sorry, zu lange her für einen alten Informatiker :) Aber Vektorrechnung ist der Weg den man da gehen muss, und dafür dürfte es reichlich viele Bibliotheken geben.
@ cppbert Das ist ein Paket in Python. http://geosolver.sourceforge.net/ Gefunden auf https://en.wikipedia.org/wiki/Geometric_constraint_solving
cppbert schrieb: > Linie und Constrains als solche zu definieren und das ganze zu zeichnen > macht mir keine Probleme - ich hab nur keinen Ahnung wie man so ein > "eingeschränktes" System berechnen oder erkennt das es nicht gelöst > werden > kann, oder multiple Lösungen gibt Naja, das ist eine Frage der einfachen Mathematik, gewöhnlicherweise kann man auch nicht alles mit Constraints belegen um eben eine "unmachbarkeit" zu verhindern (eine Linienlänge und ein Winkel bleiben undefiniert zB) Nun zur einfachen Mathematik: jede komplexe Form lässt sich in weniger Komplexe (virteulle) Dreiecke zerlegen. Innenwinkel eines jeden Dreiecks sind IMMER ausnahmslos 180° So kann man aus der Lage der Dreieecke den Gesamtinnenwinkel einer jeden Form bestimmen. Längen sind nur wenig komplexer; gewöhnlicherweise nimmt man einen Startpunkt X und geht im Uhrezeigersinn um die Form, jeder Schrittlänge nach rechts muss mit einer Schrittlänge nach links ausgeglichen werden, und jede Schrittlänge nach oben mit einer nach unten damit die Form geschlossen bleibt. Diagonalen haben eine X und eine Y komponente in die Du zerlegen kannst. Bögen werden über ihre Sehnen addiert und so hat man eine einfache Vektorgleichung die am Ende Null ergeben muss. Hast Du nun einige Unbekannte in der Gleichung kannst Du nach diesen Umstellen und erhälst eine bestimmte Anzahl an möglichen Werten damit kennst Du die Anzahl und sogar die Werte der Möglichkeiten 'sid
cppbert schrieb: > Linie und Constrains als solche zu definieren und das > ganze zu zeichnen macht mir keine Probleme - ich hab > nur keinen Ahnung wie man so ein "eingeschränktes" > System berechnen oder erkennt das es nicht gelöst werden > kann, oder multiple Lösungen gibt Das ist ein großes Thema, denn ganz ähnliche Fragestellungen sind der Urgrund der Algebra. Strecken und Kreisbögen lassen sich durch charakteristische Punkte beschreiben; aus Paaren, Tripeln oder Quadrupeln von gegebenen Punkten lassen sich durch Grundoperationen neue Punkte gewinnen. Sicherlich lassen sich auch parametrische Sachen beschreiben. Man kann auch Polynome verwenden (Splines, Bezier-Kurven). Du müsstest Dich mal schrittweise festlegen, wie Deine Grundelemente aussehen sollen und welche Operationen erlaubt sein sollen -- dann kann man bei genügend mathematischem Geschick untersuchen, ob das System widerspruchsfrei ist, welche Lösungen es geben kann und wie man die berechnet.
Such mal nach "sketchpad the mother of all demos" - das war die erste Software, die das konnte. In library-Form gibt es auch noch OpenCasCADe.
danke für die Tips & Links ich kompiliere gerade: http://solvespace.com mal schauen ob ich davon nicht gleich die lib verwenden kann - bestimmt ein wenig zu umfangreich aber als Einstieg zum spielen bestimmt brauchbar
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.