Freie Software zu: (MP) Streichholzgraphen 4-regulär und 4/n-regulär (n>4) und 2/5, Beitrag No.2442
Frage: Hat ein vorgelegter Streichholzgraph nur Kanten der Länge 1?
Zusatzfrage: Wenn nicht, lässt er sich noch zurechtrücken zu einem solchen Graph?

Dazu einen neuen Graph beginnen und im großen Eingabefenster nach A(2,1); die Eingabe fortsetzen mit

Allein mit diesen Eingabefunktionen kann schon ein Streichholzgraph komplett eingegeben werden. Dann kann man in dieser Ergebniszeile die maximale und minimale Kantenlänge ablesen. Für den lautet das Ergebnis minimal 0.99973399850038091596, maximal 1.00000000000000066613.

Dann kann man versuchen, das Ergebnis zu verbessern, mittels der Buttons , neue Eingabe und . Danach lautet das Ergebnis minimal 0.99999999999999966693, maximal 1.00000000000000244249

Das Ergebnis ist besser, aber immer noch kein Beweis, dass die Kanten wirklich alle exakt 1 sind. Es ist aber ein deutlicher Hinweis darauf, dass die Suche nach einem richtigen Beweis Erfolg haben könnte. Bei diesem Graph geht das rechnerisch mit Button "acos(1/4)" mit dem Ergebnis minimal exakt 1, maximal exakt 1.

Weitere Funktionen siehe in kurze Beschreibung der Eingabefunktionen und wo sie im Thread verwendet wurden.

Das Abzählkriterium für ebene Fachwerke lautet n=a+s-2k.

Für 4-reguläre Graphen vereinfacht sich dieses Abzählkriterium wegen s-2k=0 zu n=a. Falls der Graph vereinzelt Knoten mit Knotengrad ungleich 4 enthält, braucht man nur die Abweichungen vom Knotengrad 4 zählen und die Hälfte davon geht in das Abzählkriterium ein als s-2k=Knotengradabweichungssumme/2, denn jede Kante, die man aus dem 4-regulären Graph entfernt oder dort hinzufügt, ändert die linke Seite s-2k um 1 und den Term Knotengradabweichungssumme/2 auf der rechten Seite ebenfalls um 1, weil die eine entfernte oder hinzugefügte Kante den Knotengrad von zwei Knoten um je 1 ändert.

Variable a setzt sich zusammen aus den obligatorischen drei Auflagerreaktionen, um den Graph als ganzes an der Bewegung zu hindern, ergänzt um zusätzliche Auflagerreaktionen, welche eventuell vorhandene bewegliche Teilgraphen fixieren, a = Beweglichkeit + 3. Wenn alle vorhandenen Bewegungsmöglichkeiten durch Auflager aufgefangen werden, ist n nur gleich oder größer als Null. Diesen Grad der Überbestimmtheit n deute ich als Anzahl der Kanten, welche beim Auflegen des Streichholzgraphen in einen passenden unveränderbaren Abstand eingesetzt werden müssen, im Thread Einsetzkanten genannt.

Insgesamt lautet dann das Abzählkriterium

Einsetzkanten=Beweglichkeit + 3 + Knotengradabweichungssumme/2

und so wird diese Gleichung über jedem Graph angezeigt. Einige Beispiele sind

Einsetzkanten=Beweglichkeit+3 in weil 4-regulärer Graph,
Einsetzkanten=Beweglichkeit+1 in weil 2 Knoten vom Grad 2.

Aus dem Abzählkriterium geht nur hervor, wie groß die Differenz der Variablen Einsetzkanten und Beweglichkeit ist und nicht deren tatsächliche Werte. Diese zu bestimmen, das folgt im nächsten Abschnitt.

Zur Bestimmung der Einsetzkanten und deren Bereiche gibt es jetzt 5 verschiedene Button-Kombinationen:

Variante Button Programm Eingabe der Punktkoordinaten Berechnung Ergebnis
1 "acos(1/4)" GAP exakt exakt exakt
2 "GAP" GAP 6 Nachkommastellen exakt nicht exakt wegen ungenauer Eingabedaten
3 "Einsetzkanten"+Checkbox "BigInt" Browser 6 Nachkommastellen exakt gleiches Ergebnis wie bei Button "GAP"
4 "Einsetzkanten"+Checkbox "gerundet" Browser 6 Nachkommastellen gerundet nicht exakt
5 "Einsetzkanten" Browser ca. 15 Nachkommastellen gerundet nicht exakt

Variante 1 geht leider nicht bei jedem Graph, deshalb Variante 2. Variante 3 rechnet wie 2, etwas langsamer aber dafür im Browser. Variante 4 ist schneller als Variante 3 wegen gerundeter Berechnung. Variante 5 nimmt genauere Eingangsdaten im Vergleich zu Variante 4.

Damit auch beim Rechnen mit gerundeten Eingabedaten etwas brauchbares herauskommt, habe ich überall, wo im Rechenalgorithmus ein Vergleich x=0 auftritt, diesen ergänzt durch einen Vergleich |x|<ε. Wenn das erfüllt ist, wird der Rechenalgorithmus wie bei x=0 fortgesetzt. Der Wert für ε ist einstellbar unter Button "ausführlich", ebenso auf wieviel Nachkommastellen die Eingabe gerundet werden soll. Der eingestellte Wert ε=0.1 erscheint recht grob, hat sich aber in bisherigen Beispielen als ausreichend herausgestellt. Beispiel , Button "Einsetzkanten" mit Checkbox "BigInt" liefert für ε=0.1 das gewünschte Ergebnis 1 Einsetzkante und 1 Beweglichkeit, bei ε=0 nur 0 Einsetzkanten und 0 Beweglichkeit. Der Wechsel zwischen beiden Ergebnissen erfolgt irgendwo zwischen 0.0000001<ε<0.000001.

Zur Bedeutung der grafischen Programmausgabe siehe Beschreibung .

Zur Installation des GAP-Programms siehe und mehr im Abschnitt "weitere vorhergehende Programmversionen".

Der nächsten Abschnitt "Testtabelle für Einsetzkanten" enthält eine größere Menge Beispiele.

Beitrag No.2366

In der linken Spalte einen Graph auswählen (anklicken), dann Button "Einsetzkanten" drücken. In der zweiten Spalte "E B" steht, was herauskommen soll: E=Anzahl Einsetzkanten, B=Grad der Beweglichkeit. In den nächsten drei Spalten was herauskommt bei Button "acos(1/4)", "GAP", "Einsetzkanten". In der nächsten Spalte rechnet Button "Test" alle Zeilen auf einmal nach. Die restlichen Spalten sind noch ohne Bedeutung (das waren anfängliche Zwischenergebnisse zum Verbessern). Vorerst soll nur die Zahl der Einsetzkanten richtig herauskommen. Ein unmittelbar darauffolgendes "wenige N", "egal wie", "wenige Winkel" oder "viele Winkel" verwendet diese Einsetzkanten mit der Absicht, eine höhere Genauigkeit zu erzielen. Eintrag "-" bedeutet, Button ist für diesen Graph nicht verwendbar.

E B "acos(1/4)" "GAP"
1 0 1 0 1 0 1 0 1 ERROR - 1 -
2 1 2 1 2 1 2 1 1 1 - 1 -
3 0 3 0 3 0 3 0 1 1 - 1 1
4 1 4 1 4 1 4 1 1 1 - 1 1
1 2 1 2 1 2 1 2 1 1 1 1 -
1 2 1 2 1 2 1 2 1 1 1 (grün) 1 -
6 27 - - 6 27 6 27 1 1 1 (grün) 1 -
1 1 1 1 1 1 1 1 1 1 1 (grün) 1 -
0 1 0 1 0 1 0 1 1 ERROR ERROR 1 1
1 2 - - 1 2 1 2 1 ERROR ERROR 1 1
3 4 - - 3 4 3 4 1 1.0019 P72-P82 fehlt 1 ERROR
5 2 5 2 5 2 5 2 ERROR ERROR 0.9998 1.001 1.0009
2 3 2 3 2 3 2 3 1 ERROR 1 1 1
5 2 5 2 5 2 5 2 1 1 1 ERROR ERROR
1 2 1 2 1 2 1 2
5 6 5 6 5 6 5 6
4 1 4 1 4 1 4 1
7 4 7 4 7 4 7 4
10 0 - - 10 0
2 1 2 1 2 1 2 1
3 2 - - 3 2 3 2
4 3 4 3 4 3 4 3
4 1 4 1 4 1 4 1
4 5 4 5 4 5 4 5
4 1 - - 4 1 4 1
6 0 - - 6 0 6 0
4 1 - - 4 1 4 1
6 1 6 1 6 1 6 1
0 5 0 5 0 5
1 0 - - 1 0 1 0
3 1 3 1 3 1 3 1
7 0 7 0 7 0 7 0
6 0 - - 6 0 6 0
1 1 1 1 1 1 1 1
3 0 - - 3 0
E B "acos(1/4)" "GAP"

Button "max bij" soll einen einfach beweglichen Graph daraufhin untersuchen, ob im Verlauf der Bewegung eine Stelle erreicht wird, an der sich die Bewegung verzweigen kann. Wähle als Ausgangspunkt einen der folgenden Graphen (anklicken): , , , , , . Dann der Reihe nach folgende Buttons anklicken: (oder einen anderen Button für neue Eingabe), , (und abwarten bis alle t gefunden), (hier abwarten, bis sich Ausgabe "t=..." nicht mehr verändert und am Ende ganz verschwindet). Als Ergebnis herauskommen soll , , , , , . Das sind die Stellen, wo Verzweigungen der Bewegung möglich sind. Anschließend Button "Verzweigungen" in der Zeile "Testfunktion" drücken, daneben werden dann verschiedene Verzweigungen aufgelistet als Buttons (0), (1), (2) und mehr soviele gefunden wurden. Dann einen von diesen anklicken und Buttons "beweglich?", "extrapolieren", "ausrichten", "Kanten" und Animation starten mit Knopf "Start_t" links neben dem Graph. Nach Betrachtung dieser Beispiele könnte man meinen, daß solche Verzweigungen der Bewegung nur dort auftreten, wo zwei Kanten exakt auf einer Linie liegen. Das ist oft, aber nicht immer der Fall. Zum Beispiel in Graph "#1902" beträgt der Winkel ∠(P6,P3,P1) exakt 180°. Nach Button "acos(1/4)" jedoch ist der Graph einfach beweglich, und das ist exakt gerechnet. Zweifache Beweglichkeit tritt knapp daneben auf, in Graph "#1902a", dort ist ∠(P6,P3,P1)=176.9°.

Die beiden Buttons "max bij" und "Verzweigungen" sind allerdings nur erste Versuche durch Probieren, ob in diesen Beispielen die Verzweigungen gefunden werden können. Da fehlt noch ein allgemein funktionierendes Verfahren.


Button "besser annähern" soll folgende Funktionen übernehmen:
  1. Zuerst alle nicht passenden Kanten entfernen.
  2. Falls der verbleibende Graph beweglich ist, diese Beweglichkeit nutzen, um einzelne entfernte Kanten in beliebiger Reihenfolge wieder passend einzufügen. Aber nur solange, bis ein starrer Graph erreicht ist.
  3. Anschließend, unbedingt und soweit es irgend möglich ist, solche Kanten entfernen, ohne denen der Graph immer noch starr bleibt, ebenfalls in beliebiger Reihenfolge.
  4. Dann der Reihe nach je eine Kante entfernen, einen dadurch entstehenden Beweglichkeitsbereich bestimmen und daraufhin absuchen, ob irgendeine der entfernten Kanten passend wird.
    • In so einem Fall den Graph kopieren, in der Kopie alle entfernten Kanten wieder hinzufügen und die Kopie als Zwischenlösung speichern, sofern diese Zwischenlösung nicht schon vorhanden ist.
    • Anschließend den Beweglichkeitsbereich weiter absuchen und weitere gefundene Zwischenlösungen speichern
    • und wenn der Beweglichkeitsbereich vollständig abgesucht ist, die zuletzt in 4. entfernte Kante wieder hinzufügen, die nächste Kante entfernen, Beweglichkeitsbereich bestimmen und absuchen, Zwischenlösungen speichern und so weiter...
  5. Diese Methode 1. bis 4. für jede gefundene Zwischenlösung rekursiv wiederholen, also nicht passende Kanten entfernen und so weiter...

ist Graph . Er hat jede Menge nicht passende Kanten. Sie lassen sich mit Button bis auf 5 verbleibende Kanten zurechtziehen. Genauer gesagt, 4 nicht passende Kanten und 1 Kante, die zusätzlich entfernt werden kann, so dass der Graph immer noch starr bleibt. Nun eine Verbesserung mit der oben beschriebenen Methode versuchen, reihum eine weitere Kante zu entfernen, um den Graph beweglich zu machen. Klicke auf Button und die Suche beginnt. Unter dem Graph werden fortlaufend die gefundenen Zwischenlösungen als Buttons "bisheriges Minimum=x.xxxx" aufgelistet. Die Beschriftung "x.xxxx" bezeichnet die maximale Abweichung von Kantenlänge 1. Die vierte Zwischenlösung mit der Beschriftung "bisheriges Minimum=0.0000" ist schon das gesuchte Ergebnis. Button und Button "0.0000" anklicken.

ist Graph Button (anklicken). Er hat drei nicht passende Kanten. Sie lassen sich mit Button nicht weiter zurechtziehen. Klicke diesmal auf Button , dann wird die Suche rekursiv für jede gefundene Zwischenlösung fortgesetzt. Irgendwann (kann Minuten, Stunden, Tage, Jahre dauern) wird die gesuchte Zwischenlösung "bisheriges Minimum=0.0000" ausgegeben (wenn es eine gibt und gefunden wird, konkret bei diesem Graph ist es die xx.-te Zwischenlösung). Dann wieder und Button "0.0000" anklicken. Das ist eine Lösung mit passenden Kanten.

Der Button "intern" zeigt die (nahezu unverändert) herauskopierte Beschreibung aus der betreffenden Programmversion, teilweise dann aber doch aktualisiert.

Streichholzgraph-185.htm mit Button Feinjustieren Streichholzgraph-195.htm mit farbigen Kanten Streichholzgraph-198.htm wo man Kantenlängen als ab(Pl,Pm) eingeben und entfernen kann Streichholzgraph-212.htm mit Eingabe Shift+Mauszeiger (ohne Klick) Streichholzgraph-251.htm mit Erzeugen GAP-Code Starrheit/Beweglichkeit Streichholzgraph-326.htm mit gleichzeitigem Justieren zweier Winkel Streichholzgraph-421.htm mit gleichzeitigem Justieren dreier Winkel Streichholzgraph-453.htm mit automatisch erzeugter Eingabe Streichholzgraph-463.htm zweiter Versuch zu Button "neue Eingabe", zusätzlich jetzt "Übernehmen" und ".dxf" Streichholzgraph-464.htm mit Markierung der Kanten durch Kreis um Kantenmittelpunkt Streichholzgraph-491.htm 4/11 mit 817 Streichholzgraph-519.htm Teilgraphen kopieren Streichholzgraph-551.htm neues Eingabeformat mit Winkeln als xml-Element Streichholzgraph-630.htm Feinjustieren mit Attribut Ziehfaktor Zunahme Warten Wiederholen Streichholzgraph-640.htm mit Button "neue Eingabe, Rahmen zuerst" Streichholzgraph-645.htm mit Eingabe nach Zeichenvorlage Streichholzgraph-785.htm mit SVG-Amination Streichholzgraph-872.htm mit Beschreibung einzelner Eingabeschritte Streichholzgraph-935.htm mit Button "Beweis" Streichholzgraph-964.htm mit Buttons zum Ausrichten, Vergrößern, Verkleinern Streichholzgraph-981.htm letzte Version vor Ersetzen acos durch zweimal atan2. Streichholzgraph-1554.htm letzte Version vor Button "beweglich?" matchstick_graphs_calculator.htm englische Version Verlinkt sind die bereits heruntergeladenen und dadurch eventuell nicht mehr aktuellen Files. Die englische Version ist unter anderem in Beitrag No.970 erhältlich und die Streichholzgraph-xyz.htm sind aus dem Notizbuch. im Graph genauer lokalisieren. , wenn zwei Knotenpunkte von außen mit Kraft 1 zusammengedrückt werden. zur Beweglichkeit zur Beweglichkeit bei gerundeten Punktkoordinaten.
Bildtext: Platz für Bildtext
#top #svg #input #Test
( mit Überschneidungen und Fläche)
geeignet für Button "acos(1/4)"
P1
um , horizontal entlang P-P, um , ,
Schriftfarbe , Bildgröße Pixel, mit Enter umstellen oder . Ersatztasten für's Tablet
neu:
. Erst dann neue Eingabe , , , ()

blauerWinkel= ° gruenerWinkel= ° orangerWinkel= ° Implementwinkel∠(,,,)=60°, Abstand(,)=1

nächster Knoten ist P . Fenstergröße Zeichen, mit Enter umstellen. mit animate value="0;5;0;-5;0" dur="5", mit Worker, gerundet, mit BigInt rechnen.
Fontsize: %, mit Enter umstellen.
neu: und aktuelle Testbeispiele (funktionieren nicht immer):
Graphen, die in der Beschreibung verwendet werden:

Ausgabe fedgeo und TikZ mit mindestens Nachkommastellen. TikZ-Kanten mit -facher Kantenlänge.
TikZ mit Ergebnistabelle ( farbig, mehrspaltig), Flächen (mit shift), breiten, schmalen Kanten, Punkten, einzustellenden Kanten, nicht passenden Kanten, Winkeln ( gefüllt, Pfeil (-Latex oder Doppelkite)), Punktnummern ( ausgerichtet), \spy, (neu: mit Knotengrad, Einsetzkanten. ohne "Eingabe war:").
erzeuge Code für

(dieser Download erfolgt mit <a href=... download=...>)


ok neue Version starten für Bereiche von Einsetzkanten bestimmen ok die Zeile "einzustellende Kanten" nur wenn welche da ok andererseits fehlen die "einzustellende Kanten" in Graph #... ok müssen ja als RA() eigegeben werden ok GRAPH Ergebnis von Button "acos(1/4)" ok ist wieder da, war ein i+1 nötig ok bei Einsetzkanten Checkbox "ohne Eingabe war." sonst wird das zuviel für tikz ok neue Eingabe mit selbstgewählten Anfangspunkten ok Button "GAP" und "acos(1/4)" Ergebnis mit Kantenangabe Pi-Pj, ok Einsetzkante hervorheben, ok breiter und dunkler. ok umschaltbar ob gestrichelt oder durchgehend, ok erstmal nur anhand mit_Button_gerechnet="GAP" ok bei blauerWinkel=Interpoliere(t,0); "tikz" mit "zurück_mit_aktuellen_Winkeln" und dann "weiter mit t" ok Button "wenige N()" ok Button "mehr" geht nicht bei #2414, ok ziemlich neu jetzt ok Button beweglich bei der Dreifachetage, nein, nur "egal wie" und nicht "wenig Winkel" ok #780-2 nach "egal wie" und "viele Winkel" 2-fach beweglich, nach "wenig Winkel" nur 1-fach, nein, nur "egal wie" ok aha beim 4/11 nach "wenig Winkel" keine Veränderung, nein, nur "egal wie" ok Testbeispiele löschen, nur die in der Beschreibung verwendeten drin lassen ok .dxf wieder in Gang bringen, auch .dwg oder anderes aus https://www.xsim.info/articles/FreeCAD/en-US/HowTo/Supported-file-formats.html ok zweimal "Verzweigungen" drücken stimmt nicht, ok Anfangsgraph merken ok die \draw dash on off in einem \foreach zusammenfassen ok Graphs die in der Beschreibung verwendet werden neu machen ok von #755 ausgehend alle 4 Bewegungsvarianten finden, von #2408 aus 8, ok Button "Verzweigungen" ok ddf zusätzlich mit ddw berechnen ok bei "dw, ddw" nur "extrapolieren" von t=-1 bis t=1, gehen tut nur von t=-8 bis t=5 .. Summe der Belastungen .. "wenige Winkel" neu wegen gestrecktem N(k,i,j); .. "max bij" genauer bis x-fach beweglich .. "beweglich?" geht nicht wenn keine R(i,j) oder RA(i,j) drin .. bei "beweglich?" wieder von t=0 bis t=0 eintragen oder ob es überhaupt geht .. zu "extrapolieren" ein "beenden links/rechts" um vorzeitig zum t= zu gelangen .. Example Feinjustieren mit Nullstab #2415b .. !!!bei acos(1/4) Einsetzkanten wählbar machen .. ws/gap2 wieder aktivieren .. Bereiche in Graphen umwandeln .. GRAPH Doppelkite+viele Winkel+Feinjustieren da die Einsetzkanten .. #780-2 acos(1/4) machbar mach .. später dann noch Einsetzkanten mit Button Kaleidoskop machen .. bessere Annäherung paralleler Kanten .. bei "beweglich?" ein Hinweis, daß Eingabe möglicherweise nicht alle Bewegungen zulässt. .. manche ä ö ü in UTF-8 umwandeln .. gesamte Seite auswählen geht auf dem Tablet nicht .. in W_Tab nur mod 30° speichern und dann in 30°-Schritten abtasten. .. "Feinjustieren" wenn nicht geht, mit R(i,j,"green",0.7*D) wiederholen, dann 0.8*D, 0.9*D und 1*D. .. scheint zu gehen: "extrapolieren", ein t= wählen, "zurück mit aktuellen Winkeln", "Ableitungsmatrix", MaxAij, "weiter mit t=" .. den Federkraftmesser in tikz hinein mit machen .. die Tippf. in 2437.txt .. t-tabelle als table mit MaxAij .. Button "Start_t" im Text. .. mehrere Grapen auf einmal laden .. wenige Winkel bei #2400 4-fach beweglich .. Feinjustieren ohne den zuletzt verstellten oder auch ohne den markierten Winkel .. "wenige Winkel" und "beweglich?" bei #2329 endet mit gA= .. #2442-5 und 6 da endet "extrapolieren" mit Error .. RW(69,67,32,33,0); RW(21,15,52,53,0); am Ende von #2442-0 .. "wenige Winkel" bei #2408R gestreckt geht nicht .. "zurück" auch bei einfachen Änderungen, aufgesammelt .. Checkbox Ausrichten schwimmt davon .. das Stab2 Beispiel auch mit rechnen .. requestAnimationFrame noch weiter einsetzen .. die Bereiche linearkombinieren um alle anderen Bereiche zu erzeugen .. #2442 "wenige N()"+"Verzweigungen"+"0" ist 2-fach beweglich .. bei "GAP" gestrichelte Linien .. bei "GAP" Checkbox für Einsetzkanten hervorheben mit draw-width=3. .. bei "GAP" Logfile(""); .. #814-1 "egal wie"+"Verzweigen"+"1" ist 3-fach beweglich und "0"="2". .. vivaldi: {$\sin(\alpha)$} .. download Seite 61 und 62 .. #1902 "wenige Winkel" "Verzweigungen" gibt nur "0" aus. .. nach "extrapolieren" Stroboskop-Darstellung, mit TikZ ok 5 Rahmen() auch mit Einersegmenten ok 4 Checkbox Überschneidungen zulassen bei "extrapolieren" ok 3 ET.ws rückgängig machen zu ET.s und dafür "Feinjustieren" vor Button "beweglich?" ok 2 mehr als die 156 Webfarben ok 1 Kaleidoskop geht auch mit Punkt in der Spitze ok die Kästchen noch in der Beschreibung ergänzen ok ok diese ZuTu-Liste an den Anfang von Streichholzgraph-981.htm machen ok Index von DD, Belastung, Beweglichkeit bei 1 beginnen lassen, doch nur nach // ok DD sichtbar machen durch Stützen und so, ok Loslager sind es geworden ok dies noch in der Beschreibung ergänzen ok und noch ein graues Kästchen ohne Rahmen für "alle Bewegungen aus" ok Ergebnis ins Eingabefenster zurückschreiben, mit Buttons "hinzufügen", "entfernen" ok gedrückte Buttons wieder markieren ok daemon-Fehler bei restart ok hab neues daemon von 0.0.15 auf 0.0.h nö Button "Matrix aufstellen" nö nö und in Tabelle anordnen nö, lass ich so nö mit Checksum beim Ergebnis zurückschreiben, nö, erst wenn unbedingt gebraucht ok schattierte Loslager ok das nicht, aber die Verlängerungslinie ok ok Loslager als Schieber zum Kombinieren ok touchmove geht nö die Normierung doch wieder so machen, dass 1 und 2 zusammen die Verschiebung ergibt ok Beschriftung der Kästchen mit "P1-P2" und "P70 h", wg.#755 P70 ok dazu noch Beschreibung aktualisieren und Farbe nochmal einstellen ok barray zurücksetzen wo nötig, Graph verschieben geht deswegen auch nicht. ok Markierung der Belastungen zusätzlich mit arc ok #755 hat wohl nur 4 Bewegungslinien (Feinjustieren blau=31, sonst 28 oder 31.5) ok Rückgabe Ergebnis als x_m_l-Element ok und Abschnitt "aktuelle Zusammenfassung zur Beweglichkeit" ok Beweglichkeit aus den gerundeten Koordinaten herausbestimmen. nö dazu doch nochmal max(bij)/min(bij) nutzen statt nur max(bij) nö bringt nichts ok warum bei Bewegl2. MaxInvAij groß obwohl beweglich, ok P4-P6-P9 nicht auf 1 Linie ok Button "GAP"+"zusammendrücken" geht nicht mehr, ok geht wieder ok ein "gerechnet_mit_Button:=GAP" und das auch ins Ergebnis nö außerdem war da irgendwo noch ein Fehler drin, bloß was, nö nö wenn gerechnet, geht neu zeichnen nicht? nö ok bei F1x=1 auch die Belastung minimieren, so wie beim Knoten zusammendrücken ok Variablen Belastung und Belastungsarray gegenseitig löschen oder umbenennen ok wenn Belastung P7-P6=1 angezeigt und dann anderes Kästchen, muss P7-P6 wieder weg .. wenn neue Kante und überhaupt Graph geändert, dann Kästchen weg. also doch Checksum .. Zusatzbelastungen auch aufheben wenn gewünscht. .. auch bei den Einsetzkanten die Belastung minimieren. .. statt P7-P6 besser F(P7-P6)=1 und statt P6-v sowas wie P6->v .. ein Ergebnis-x_m_l-Element auch bei der GAP-Rückgabe .. äußere und Auflagekräfte auch mit svg-Elementen darstellen .. tikzpicture auch aktuell machen .. den Ruckelfehler bei der Animation, wo erst nochmal die SVG angetippt werden muss .. ruckelt erst nach touch-Loslassen .. nur in dem einen Browser .. mal sehen, wenn ich den event wegmach, ob dann was anders ist. .. globale Beweglichkeiten kombinieren aus zugehörigen Verschiebungen der Loslager. .. und diese globalen Beweglichkeiten aus der Lösungsmenge herausrechnen .. Beweglichkeit neu aus inneren Freiheitsgraden bestimmen als mögliche LK. .. -xxx.htm Versionen aussortieren und neu anordnen .. Linkliste auf Forumbeiträge, 19-27 ok, 18, .. Versionen zurückladen und als Tags markieren, .. auch die letzen Upload-Tags nochmal, als extra Strang mit merge ohne commit. o. bei Fig.2hLE+ zieht die Auflage in die verkehrte Richtung. Aha, gedrehte Lager. .. zwischen doc und svg noch ein zwischen_x_m_l oder das als Ergebnis mit, ja wohl das -- Button "neue Eingabe, wenig Winkel" weitermachen -- das Stützen ersetzen in INVERT() in einem Schritt ausführen -- Eingaben aus Thread auslesen -- fal. Beweglichkeit -- Wurzel aus Wurzel -- aus größerem Bereich zurechtziehen -- Checkliste über alle Funktionen -- Hinzufügen Nullzeilen und -spalten wegmachen -- Group(W60,Wbl); ob damit was zu machen geht, Enumerator geht nicht. -- Eingaben wie A(i,j) alle als erstes in xml umwandeln ok ROT2-Kanten etwas absetzen durch "passt nicht mehr:" ok bei Button "neue Eingabe, wenig Winkel" aus A(...,ab(...)) nur ein R machen. ok die anderen als Kommentar "//oder auch R(...)" .. besser noch: dafür die geeignetste Kante heraussuchen. ok Ausweg, wenn Kante vor Punkt eingegeben wird, bei Button "Beschreibung". ok in Button "neue Eingabe, wenig Winkel" die jam-Kanten mit rein. .. Buttons "zurück" gehen momentan nicht .. Verschieben wenn Anfang nicht P1P2 ging mal nicht .. Liste der A-Kanten anklickbar machen .. bei "neue Eingabe, Rahmen zuerst" die R(...,jam...) zuletzt hin .. var Liste=document.getElementById("Abstaende").getElementsByTagName("text") global .. veränderte Hintergrundfarbe wenn Eingabe geändert und noch nicht neu gezeichnet .. dann Buttons "#..." ohne "neu zeichnen" ok #1376 und ein Versuch zum dauerhaft Ausrichten .. #1477 warum Feinjustieren(3) nicht geht ok Winkelpunktreihenfolge richtig machen ok Button "zurück" wenn ein oder mehrere Graphen reinkopiert o. Punktbezeichnungen in 60°-Winkel setzen ok Dreiecke zählen und im Hintergrund zeichnen .. bei Feinjustieren RW Wechsel von -180° zu 180° ok in Implementwinkel(k,i,j,l) atan2 statt acos ok einstellbarer Abstand was nahe Knoten sind. .. k_u_a noch auf nahe Kanten erweitern ok nur zusammenfallende Punkte wie in #1588 zählen auch als Überschneidung ok VE50=50 für UNDO-Tiefe ok bei Randpunkte bestimmen auch Anfangsbezugspunkt>0 ok Klickwinkel in SVG markieren, auch in SVG anklickbar ok Ausschalten der Hilfslinien ok Flächenbestimmung nur in Button "Flächen" bei 0 oder 0? Überschneidungen ok +($1*(x,y)$) statt +(x,y) in Button "TikZ" ok TikZ shift funktioniert nicht mit (p-i) Koordinaten ok .dxf mit LWPOLYLINE nach Button "Flächen" ok LWPOLYLINE mit AcDbPolyline .. das xmlns="" im geklonten animate geht nicht weg ok beliebiges ns1 statt xlink geht nicht, doch, wegen getAttributeNS schon. ok ok zu Button "Ausrichten" auch ein xml-Element und eine Checkbox. .. dabei Mitte zwischen Pi und Pj unverändert beibehalten ok wenn Pi oder Pj nicht vorhanden, "Ausrichten" ignorieren .. die Checkbox noch irgendwie beschriften .. zu Button "-10" statt Checkbox ein Radiobutton, und den auch beschriften ok Winkelalgorithmus1 um mehrere Winkel auf einmal zu verstellen ok wenn bei "-10" kein Winkel ausgewählt ist, den ersten Winkel auswählen ok in animate geht jetzt neben xlink:href auch nur href, beides mit oder ohne xmlns ok alle animate ohne xmlns beim Laden auf mit xmlns umwandeln und zurückspeichern ok auch bei Button "mehr" und bei allen gespeicherten Graphen ok bei Feinjustieren Anzahl="0" muss ein if (s>0) rein :: die Polynome bestimmen :: die Isomorphismen bestimmen :: restriktiveres xml .. bei Einpassen, Drehen, Verschieben kann event raus? .. Einpassen Vergrößern auch für frühere Graphen machen, die mit D=50... .. tikz_code auch für P-i ??? .. Feinjustieren auf mehr Kanten als Winkel ausdehnen .. dazu auch neue Eingabe "viele Winkel" .. bei Button neue Eingabe auch alle Winkel größer Null machen. .. neue Eingabe "wenig Winkel" auch für GAP .. s und ws einstellen mit Feinjustieren(s,ws) .. Gedacht ist es für sws? Nein, beim 52 nicht! ok zurück(n) ok zwölfterWinkel in zwoelfterWinkel ok mit Alt-Taste Z machen, ok das Q nach innen bei #1892ew und "Rahmen zuerst" ok "Rahmen zuerst" der nach-Innen-Knick Fehler in #1910-5 ok "egal wie" auch nach Z(1) oder Z(2) ok Bei neuer Eingabe vorherige Ausrichtung übernehmen ok #1892ew "wenig Winkel" geht nicht, ok ist repariert if (...==1) ok Überschreitung des Zahlenbereichs vermeiden ok bei Z auch die R mit löschen ok Ausrichten mit ueber="100,100" ok "Ausrichten" verschiebt nicht mehr wegen ueber="..." ok dauerhaft ausrichten nicht bei P1-P2 ok bei Button "mehr Winkel" keine schon vorhandenen hinzufügen ok ok Ausrichten ignorieren wenn nur geringfügig ok Beschreibung in einem scroll-Fenster ok #1913-3 nach oben um 50 verschieben ergibt unpassende, ok gefunden in "egal wie" ok #1912a und #1913-3 ausrichten entlang P9-P5 ist ungenau, ok gleiche Ursache ok in "Rahmen zuerst" auch noch rausmachen, ab(j,k)<0.99*(ab(i,j)+ab(i,k)) ok und in "wenig Winkel" auch ok ok #1913-3 + "Kanten einsetzen" + "Rahmen zuerst" ok, Unterstreichen war zu weit unten ok nach #1913-3 "Kanten einsetzen" bei "wenig Winkel" Stelle nicht programmiert, ok ok alles auch mit ab(j,k)>0.01*(ab(i,j)+ab(i,k)) ok #1905 bei "egal wie" wird zusätzlich if (KL.length>1) gebraucht ok ok Zurückstellbutton nach "Newtonpolynom", ok "zurück mit aktuellen Winkeln" ok Newtonpolynom gleich automatisch in Rechenweg hineinkopieren ok nur noch stückweise Newtonpolynom, das bis Überschneidung, ROT2, Error, Stoppzeit ok animate aktualisieren, additive="replace" ok mittig interpolieren ok mit nh ok Fehlerausgabe alert ausschalten beim Extrapolieren ok Feinjustieren nur bei ROT2.length>0, vorher los() ok enum=10, inum=10 geht nicht beim #1768f, inzwischen doch ok bei "beweglich?" den größten Linearfaktor auswählen, oder den unterstrichenen? ok jmax und wmax aufsammeln und ausgeben ok beim anpassen neu-0.01 darf jmax nicht wechseln ok Feinjustieren auf nicht nur das letzte s erweitern ok mit Tauschen der Winkel ok als beweglichen Winkel dann t nehmen ok von Anfang an t dabei, später dann ok erst nach Button "beweglich?" t hinzufügen, auch animate ok extrapolieren schrittweise sichtbar machen mit setTimeout nö Zwischenausgabe auf t=n umstellen nö, alle Winkel ok extrapolieren anhalten ok Grund ausführlich ausgeben ok Testliste: ok #1768o140°, ok wechselt von jmax=1 auf jmax=5 und zurück ok #1902_, ok geht so ok #1768o180°(jmax wechselt innerhalb while) ok neu+0.01 ohne if ok #1768d ok #1768e gruenerWinkel ans Ende und da flackert was, weniger bei inum=4 statt 10 ok Button "besser annähern" ok noch_weiter_extrapolieren(} geht ganz langsam los? ok if (ET.i=0) ...los(); ok dazu erstmal die inneren Kanten heraussuchen ok dann immer eine Kante entfernen und "Rahmen zuerst" und "beweglich?" ok manche "Rahmen_zuerst" gehen nicht für k<12, ok behelfsmäẞig repariert ok aha bei Start knum=11 geht knum=13 nicht weil nicht aktueller_Index=0 ok knum=0 geht nicht weil NPUNKT[WINK[0][1]]==999 ok aktuelles Z(i,j) mit ausgeben ok als Endergebnis die Minimallösung zurückgeben ok bessere Ausgabe bei Button "besser annähern" ok bei von t=0(?) bis t=0(?) die (?) zurücksetzen nach knum+1 ok Leerzeile zwischen die Zwischenlösungen ok NaN auch als ERROR beim Feinjustieren ok bei den 10000 Schritten t=0 mit dabeimachen ok t=tmin+r/100; ok beide Abbruchbedingungen t<0 t>0 etwas stehenlassen 0,8 sek ok tcode2 in der Form am, ohne [i,j], t=..., mit [k,l] ok beim Extrapolieren die nicht passenden Abstände mit zeichnen ok mit längenabhängiger Farbe ok function Kantenfarbe(i,j) nö diese auch in draw() verwenden, nö weil "black2 für ROT2 verwendet wird ok nur Zwischenlösungen mit fast passender Kante, also gleich Feinjustieren() ok Zwischenlösungen auch gleich zurechtziehen ok Graph zusammengestellt ok bis Feinjustieren ok Array Zwischenloesungen ok Aussortieren die nicht auf 1 gehen ok Minimum markieren und merken ok das Minimum nach Feinjustieren nochmal bestimmen ok Zwischenlösungen ausgeben als Buttons ok setTimeout machen ok border-radius erhalten nach Klick, ok als letztes die Minimallösung ausgeben ok Minimumsgraph besser als mit * markieren ok Anfangsgraph auch mit als Zwischenlösung einreihen ok Z(40,39); //26 aus [0,44] ans Ende der Zwischenlösungen hin nö vor den 10000 Schritten wieder den Anfangsgraph ausgeben und Wartehinweis ok neue Testbeispiele: ok Approx-Fig.5 Start geht durch mit Ergebnis Approx-Fig.5 Ende ok #1934 der mit 59 Knoten ok geht komplett durch mit Ergebnis #1934_fert ok #1946-1 Fig.6 51 Kn. geht durch ok #1946-2 Fig.7 51 Kn. geht durch ok neue Demo mit exakter Lösung ok Graph exakt-6 und Graph exakt-7 ok Fig.6 knum=12,13,14 t=180 ok Fig.6 knum=19,28 stoppt alles ok Fig.6 knum=29 da geht am Ende nicht Feinjustieren() ok #1934 knum=23 stoppt bei t=0, t=1 ok geht durch ok #1934 knum=24,25 stoppt bei t=-1 ok #1934fert knum=39 t=180 wegen NaN ok Fig.7_fert knum=8 bleibt bei t=0 ok läuft jetzt durch, aber keine Verbesserung ok exakt-7 knum=31 da stimmt am=0.2568 nicht ok am neu berechnet aus Einsetzkanten ok oder Zwischenlösungen als Buttons oder sowas zum weitersuchen ok bei "... multi" und nur 2 unpassende würden ja vorherige Einsetzkanten reichen ok als Einstieg "besser annähern multi" doch nur mit dem letzten Ergebnis fortsetzen ok ähnliche Zwischenlösungen zusammenfassen ok nächste Stufe ist dann Zwischenlösungen absuchen ok läuft los ok Button "besser annähern rekursiv" läuft los ok Button "besser annähern nur mit Feinjustieren" taugt nichts ok warum Halt bei "0.1903", aha "Rahmen zuerst" geht nicht bei einzelner Kante ok wie weiter wenn nur zwei nicht passende Kanten ok EBDIFF Kanten von ROT wegnehmen. ok weitere Markierung "besser annähern schon durchgerechnet" ok oranger Rahmen ok ok was wenn 2-fache Beweglichkeit? ok diese übergehen ok Checkbox "nur volle Beweglichkeit" ok Anfangswert für am und den auch mit ausgeben ok Feinjustieren s>ws auch mit versuchen, scheint jetzt machbar, ok funktioniert!!! ok beim 108c ungefähr nach 40 Zwischenlösungen doppelte R(i,j), 108 gleich, ok ist weg ok exakt-11 da geht "beweglich?" danach t+1 nicht, ok Feinjustieren s>ws in extrapol. ok beim 108c mehrere "0.0000" mit gleichen Einsetzkanten? ok werden jetzt erkannt ok Hinweis bei Feinjustieren s>ws: RW(...) selbst ans Ende der Eingabe verschieben. ok das Rechenweg=... los() mal in einem Unterprogramm zusammenfassen ok ok als allererste Zwischenlösung die von t=0 generieren und Anfangskante merken ok Zwischenlösungen mit Rahmen_zuerst("gleicher_Anfangspunkt") ok ok in Zwischenlösungen animate nochmal wegmachen ok wenn "0.000" nochmal "besser annähern", fehlen die 3 Restkanten. ok exakt-11 da geht Feinjustieren(11,9) nicht, muss dann (11,8) sein, ok s=s-1 reicht ok Button Feinjustieren ohne (s,ws) ok den mit (s,ws) in "ausführlich..." rein ok Button "beweglich?" wieder getrennt zu "extrapolieren" ok dann verändert "beweglich?" nichts am Graph ok "beweglich?" auch mit ignoriere_Anzahl ok alte Variante mit in "ausführlich..." rein ok dabei mit Attribut "Anzahl" einstellen ok exakt-13 nach Z(24); Z(25); Z(26); steht P24-P12 nicht mehr vorhanden ok exakt-11 "besser annähern" startet mit alert, ok ...("Ableitungsmatrix") statt true ok die vielen animate nur wenn ungleich 5;0;-5;0;5 ok Anhalten über Variable ok, Button "fortsetzen" auch ok ok Zwischenlösungen als xml ausgeben, am besten mit vorhandenem Download-Link ok mit den Attributen besser_annaehern_gestartet und besser_annaehern_beendet ok ok Graph 108 nur Einsetzkanten.slice(1) als unterschiedliche Zwischenlösungen? --ok Button "0.xxxx" ok Start Zwischenloesungen_durchrechnen() ok Variable Einsetzkanten ok aus "0.xxxx" wird "0.5504" ok APP.Zwischenloesungen gefüllt ok APP.Innenkanten gefüllt ok bisheriges Minimum ist wieder drin ok nächstes "besser annähern" geht nur bis neue Zwischenlösung ok und weiter ok bei Zwischenlösung "0.0000" geht "extrapolieren" nicht, ok erst "Rahmen zuerst" ok button class noch einstellen ok bisheriges Minimum gleich weitersetzen beim xml einlesen ok "0.5504" und andere sind mit Ziehfaktor=0 oder 1, ok ist nur ab=1.00007 oder so ok APP.knum und APP.appdoc mit bei den Zwischenlösungen ausgeben ok APP.knum rechnet los ok fertig schon bei knum+1 ok jetzt bei kmax ok ok noch keine Ausgabe "beweglich ohne...." ok ist drin ok mit Button "fortsetzen" fortsetzen ok ok Checkbox mit abspeichern und zurückstellen ist doch nötig ok auch welcher Button _multi oder _rekursiv mit speichern ok APP.Variante zurücksetzen wenn nur 1x gebraucht ok Einsetzkanten[0] nur ungleich Einsetzkanten.slice(1) ok die Innenkanten stimmen vor "fortsetzen" noch nicht, ok werden mit gespeichert ok Zwischenlösungen Graph 108 laden geht nicht fortzusetzen, ok inzwischen doch ok zusätzliche Zwischenlösung t=0, hat andere Einsetzkanten, ok gilt so ok beim echten knum fortsetzen ok dieses xml auch wieder einlesen, ok kann so schon ok sein ok in besser_annaehern() Innenkanten für jeden Start neu bestimmen. ok Innenkanten_merk ganz raus ok immer noch gleiche Zwischenlösung bei nochmaligem Starten nicht bemerkt ok bei "fortsetzen" muss dann Innenkanten nicht nochmal bestimmt werden. ok Einsetzkanten[0] ungleich Einsetzkanten.slice(1) muss dann auch nicht mehr sein ok inzwischen Überflüssiges raus ok neu Einrücken ok aber Graph mit nur 2 nicht passenden Kanten startet mit unerwünschten Kanten ok ok aber vor ROT.pop() lieber echte Einsetzkanten entfernen, ok mit Feinjustieren ok vor approx-knum() noch Vergleichen, ob Zwischenlösung unverändert, ok nur reset ok überhaupt Innenkanten nochmal neu bestimmen, für jede Zwischenlösung neu ok Beschriftung [2,17,345] als Bildtext ist drin ok ok vermeide das if Einsetzkanten[0] ungleich Einsetzkanten.slice(1) ok ist weg ok aha, liegt vermutlich mit an dem N(25,23,27); ok bei Graph exakt-13 Ableitungsmatrix wieso blauerWinkel maximal beweglich? ok APP.Variante überall rücksetzen, ok nur Beweglichkeit_testen_mit_ignoriere_Anzahl() ok alle indie>-1 Feinjustieren ok Testbutton für 108f ok Graph 108f lässt sich nicht besser "Feinjustieren" warum? ok Zwischenlösungen_(4).txt setzt nicht fort ok try Bval=eval(...); catch() Bval=[]; ok Zwischenlösungen über 500k nur als Download ok bei t= da fehlt "Stopp_alleWinkel" ok ist jetzt drin ok auf ganzzahlige Kantenlänge ziehen abschaltbar machen ok als Checkbox ok unexpected token , bezieht sich auf Funktionsaufrufe mit leerem Argument R(1,2,,D) ok Checkbox "nur sehr faire Graphen" ok bei "Rahmen zuerst" nicht passende Restkanten ans Ende verschieben ok bei Fig.6+"Rahmen zuerst" geht "Feinjustieren" nicht ok jetzt doch ok bei Graph Fig.7 P48 in "Rahmen zuerst" aus P10 bilden, ok jam vermeiden in M(...) ok wenn einmal dabei, in "Rahmen zuerst" Dreiecke wieder als L(i,j,k); ok neues "Rahmen zuerst" mit Checkbox umschaltbar machen, ok alt unter "ausführlich" ok als j in M(i,j,k,w) das mit kleinstem Ebenen[j] nehmen und unpassend hintenan ok Button "Rahmen zuerst" bei 5- und Mehrecken eher M() statt N() ok Variable Ausrichten beim Einpassen beibehalten ok bei "Feinjustieren" nur R(i,j) machen, welches sich selbst ans Ende verschiebt ok Das Überdehnen komplex lösen nochmal versuchen ok aber besser ist M(i,j,k,w) ok Graph 108c mit "nur faire Graphen" da ist eine unfaire Kante dabei, ok, nicht mehr ok Graph 108d füllen ok ist durch ok Graph 108e mit Ziehfaktor=0.01 zurechtziehen ok nur "Rahmen zuerst"+"Feinjustieren" ok wegen der vielen Winkel reicht die Ausgabe von bis zu 22 Kanten nicht mehr ok Checkbox jam statt jum ok einen zusätzlichen Winkel erzeugen ok diesen in jum einsetzen, Test mit #1178o ok ein zusätzliches R(i,j) am Ende ok jam in R(i,j) kann weg ok auch M(i,j,k,w,0,jum(...)), Test mit #2046 ok Ziehfaktor kann weg ok alle M, sind mehrere ok alle Q, sind auch mehrere ok nicht passende R(i,j) ans Ende, bei #1995, ok mit extra Funktion ok da geht dann Feinjustieren noch nicht mit gleichem Ergebnis, ok Ziehfaktor raus ok alles auch bei 'egal wie', mit Approx-Fig.5 ok und 'wenig Winkel' ok jam() auch mit als R(i,j) ok neue Eingabe Fig.6_fert geht nicht, #1183, #1867 ok nur etliche A(i,j) als RA(i,j) ok Buttons neue Eingabe "viele" Winkel, Button "Vertuschen". ok #2051-1 "egal wie" da fehlt dann eine Kante, bei "viele Winkel" auch, ok repariert ok Hilfslinie Umkreis nö Funktion Rahmen() aufteilen in extra Button "Ausgleichen" nö, eher Rahmen0123 ok vorherige_Eingabe.length beibehalten ok Button "Anhalten" zugänglich machen ok da sind noch E=B+2 dabei? ok ist jetzt korrekt E=B-1 nö da sind noch ROT2>3 dabei? nö ausgeben warum "Feinjustieren" oder "Rahmen_zuerst" nicht funktioniert haben nö Checkbox ohne Button "beweglich?" nö, ich mache Button "... ohne beweglich?" ok Tikz Fehler wenn keine Winkel drin ok schon längst ok fast Überschneidung orange ok Button plazieren ok Innenkanten bestimmen ok Innenkanten entfernen ok geht nur bis zurück(50) ok geht weiter ok Zwischenlösungen als Buttons ok Innenkanten bestimmen ok Zwischenlösung speichern ok erste_Zwischenlösung speichern ok extra Funktionen, erstmal nur bei diesem einen Button ok APP.Einsetzkanten eintragen und auch sortiert ok bei extra-9 sind ja 5 Einsetzkanten und nicht 3, ok na lass ich so, gelöst ist gelöst ok Button besser annähern "... schnell" ok die vielen xmlns in Graph 0.0101 rausmach, ok auf einmal nur noch eines. .. einzelne Rahmen0, Rahmen1, Rahmen2, Rahmen3 .. "Vertuschen" geht nicht bei: #1823, #2051-1, .. #2051-1 geht nicht gleich "Feinjustieren" .. jum Grafikausgabe als Dreieck .. jum Grafikausgabe TikZ auch .. in Feinjustieren nmax=60 verkleinern? .. das Winkelzeichen irgendwo plazieren mit .. Graph 108c mit "nur sehr faire Graphen" unnötige Zwischenlösungen t=n,n+1,n+2,n+3? .. doppeltes RW auch herauslöschen, am besten als extra Element machen .. 108k geht nicht weiter. 0-fach beweglich? .. bei "Feinjustieren" nicht R(i,j) machen, wenn Reihenfolge schon passt .. bei "Feinjustieren" R(i,j) die schon richtig sind, lassen, dann zuerst unpassende .. Button "Rahmen zuerst" so machen, dass die RA(...) garantiert nur ganz innen sind .. Graph als script laden .. bissl DOCTYPE mit rein in Ausgabe Zwischenlösungen .. der eine geht gar nicht einzugeben 1322?? .. die aus No.1322 als sehr faire Graphen probieren .. nach Einlesen neu "besser annähern" erzeugt andere Einsetzkanten .. Button "Rahmen zuerst" die 999 eher rausmach, damit keine Unterscheidung nötig .. beim Feinjustieren auch Ziehfaktor automatisch einstellen wenn dabei .. Graphen einer ganzen Seite einfügen .. "beweglich?" mit in los() rein? besser als checkbox, da reicht Ausgabe x-fach .. Graph exakt-13 "wenig Winkel"+"beweglich?" interpoliert bei t=tmax ungenau .. Graph exakt-13 "Rahmen zuerst"+"beweglich?" nur bis t=1 .. Graph exakt-13 "egal wie"+"beweglich?" nur bis t=7 .. Graph exakt-14 "Ableitungsmatrix" nur 0-fach beweglich .. Graph exakt-16 "besser annähern" Zwischenlösung bei jedem ganzzahligen t .. Graph Approx-Fig.5_rz "besser annähern" unexpected token , .. na dann auch die Beschreibung von "besser annähern", neues "Feinjustieren" und... .. unbedingt mal machen exakt-9, "Rahmen zuerst", Feinjustieren .. Button "zurück(31)" auf "zurück(29)" zurückstellen .. Button "Kaleidoskop" nochmal neu, Umsortieren der RW möglich machen .. deshalb auch alle Z(i,j) als Log ausgeben ??? .. Überschneidung der RA(i,j) muss auch nicht sein, oder doch wegen folgender Lösungen .. am umstellen auf Mittelwert .. t_zeichnen=true; .. bei "beweglich?" den jeweils aktiven Winkel+1 unterstreichen .. bei knum=4 oder so geht t unnötigerweise bis -180, auch bei jmax<0.2 .. #1934fert knum=30 geht da Feinjustieren()?, nicht, also aussortier. .. #1930 4/6 .. Fig.6_fert .. exakt-7 ob der durchgeht .. exakt-7 "beweglich?" erst nach 2xRahmen_zuerst .. #1957 der Wert 0.0208* kann nicht stimmen .. #1964 TikZ geht nicht und "besser annähern" auch nicht .. Button um alle Kantenvariationen nur feinzujustieren ohne "beweglich?" .. dabei mit flippen .. das alte Eingabeformat P2=[D,0] automatisch umwandeln .. aktueller_Index=0 besser setzen .. while (WINK[0]&&NPUNKT[WINK[0][1]]==999) WINK.shift(); nochmal anders machen .. extrapolieren momentan nur enumb=4 statt 10 weil sonst kein Halt .. extrapolieren P48-P40 entfernen geht nicht bei #1768o180° aber bei #1768o180°a .. #1768f geht im Moment nicht wie gewünscht, 1° ist zuviel, "wenig Winkel" geht gut .. an den Bereichsgrenzen genauer extrapolieren, bis 0.01 .. dauerhaft Ausrichten wenigstens im Beweglichkeitsmodus oder besser Schwebung .. die verkehrten äöü richtigstellen .. bei "beweglich?" den größten Linearfaktor auswählen, oder den unterstrichenen? .. #1916-6 mit \foreach \i in {34,...,35,37,...,72,74,...,74,80,...,88} geht nicht .. H(34,38), besser G(34,38) .. neu Durchnummerieren irgendwo mal mit .. GAP Lücken in der Punkteliste rausrechnen .. farbige Knoten für unterschiedlichen Knotengrad? .. in ab(...) negative Indizes als nicht zu kopieren .. DokuA und DokuQ die gedrehten Teilgraphen noch auflisten .. Das Überdehnen komplex lösen nochmal versuchen .. stets mit Pi=[0,0]; Pj=[1,0]; beginnen .. Lagrange-Herleitung Knotengradabweichungsgleichung. ok Fortsetzung_#2068a Rauten ok Fortsetzung_#2068b Dreiecke ok Kanten nahe 1 einfügen ok bei den Eistüten fehlt noch der Fall wenn von P6 nach P3 ein Dreieck ist .. nach (typeof K[j])=="undefined" geht das if nicht wenn || ohne Klammern vor && .. "wenige Winkel" da fehlt Kante [72,82] // ab Worker: ok Worker anfänglich in Gang bringen ok async und await wieder raus ok Rk wird glaube ich gar nicht mehr gebraucht ok ist raus ok scripttext wechseln bei error während eval(), ok jetzt gesamten SG als Worker ok warum unnötig "\n"+Rechenweg ok ist schon weg ok behelfsmäßig am Anfang gleich let blauerWinkel=0, aha, in if und eval wirkt let nur lokal, ok wenn dann self["blauerWinkel"]= .. "var ww=" als nur "ww=" nö eval(blob) probieren, ob dann filename passt, eventuell den blob schon in SG eintragen, jetzt gesamten SG als Worker ok gesamten SG als Worker nö eventuell die functions mit importScripts, nö wenn schon, dann mit import module .. Worker als module, ok myWorker.postMessage("Feinjustieren()"); ok erst Winkel_als_Array füllen ok Ergebnis aus Worker_Feinjustieren(s,ws) zurückgeben ok Ergebnis ist mit und ohne Worker richtig berechnet ok Checkbox "mit Worker weiterrechnen" und Ergebnisse von Worker dann auch verwenden ok geschafft ok in M() ist f.color weg, ok wieder drin .. Rechenfun und Rechenfun2 wieder zusammen machen, nach und nach 5 von 14 ok P=[]; K=[]; ROT=[]; in Rechenfun2() setzen ok am Anfang von Feinjustieren() geht kein los(), aha, "Justierwinkel=" muss weg. ok die Winkelausgabe wieder, dazu geht nur blauerWinkel.color ok blauerWinkel=new Object() ist wieder drin .. Ausrichten um den Mittelpunkt von Pi-Pj herum .. ganz ohne los(Text) .. nach los() erst Rahmen() wenn los() beendet. .. Button "beweglich" so zusammenpack, daß nur 1 Worker Aufruf nötig .. umbenennen Justierwinkel und Winkel_als_Vektor und "Button": .. t als Winkel_als_Vektor[0] .. jeder Button als Worker ok Button "new Worker()" .. das Wechseln von einem Button zum anderen überlegen .. sofort nach Ausführung einer Taste den Worker schließen, nicht weiter laufenlassen., .. den aktuellen Rechenweg in die Taste zurückspeichern und das Ergebnis für den Rechenweg .. Button Verzweigungen nicht als Worker, sondern die einzelnen Verzweigungsgraphen ok blinkende Taste beim Feinjustieren ok zumindestens der Anfang ok den Fortschritt auch irgendwie symolisieren ok geschafft i von imax Kanten und Punktkoordinaten ok Button "viele Winkel"+"Feinjustieren" geht nicht im Worker, ok auch Workersource mit aktualisieren .. Beweglichkeit testen in "Feinjustieren" auch mit als Worker .. nrmax anpassen in "#2445+0" und "egal wie" ok "4 Doppelkite" mit RW da geht "Feinjustieren" nicht, ok geht, da war gSollabstand[gs]*D ersetzen durch ROT[gs][3] .. bei vielen R(...) passen die Einsetzkanten nicht mehr ins SVG rein ok INVERT_pur und INVERT_Ableitungsmatrix als Worker ok bei "4 Doppelkites"+"egal wie"+"Ableitungsmatrix" (Einsetzkanten exakt 1) ist Bereich der Einsetzkanten leer, ok inzwischen ok ok "4 Doppelkites"+"wenige N"+"1"+"Feinjustieren" geht nicht, ok DD.sort(Asort).reverse(); ok die Einsetzkanten noch in ROT hineinpacken ans Ende .. neu analog Einsetzwinkel bestimmen, bei 4 Doppelkites und "egal wie" nur 1 von 4 Winkeln, ok und ohne dem geht "Feinjustieren" nicht, ok da war irgendwas anderes defekt. ok return Feinjustieren mit extra_weiter statt los() ok die ständige Sortierung von ROT in Worker_Feinjustieren vermeiden, ok mit altesROT=structuredClone(ROT); .. eventuell auch in Worker_Einsetzkanten nicht sortieren sondern ein Permutationsarray oder ein ROT1 .. Trennlinie wieder in die Ausgabe TXLS, oder Sortierung vermeiden ok bei unlösbar wieder den Ausgangsgraph zeichnen .. schon bei ersten Überschneidungen ERROR machen ok Testtabelle mit relativ vielen ERROR ok neue Eingabe soll die geeignetsten Einsetzkanten berücksichtigen ok deshalb gleich nach los() alle Einsetzkantenbereiche komplett bestimmen nö ob das über die Eingabefunktionen A, N... auch geht? nö nicht nötig .. die svg-Sachen ab x_m_l.parseFromString(Rechenweg) mit in weiter() packen .. ob bei importScripts() lineno und filename brauchbar sind ok ob im Bereich der Einsetzkanten DELTA=[1,-1] geht, um das DD zu verschieben, ok geht mit DOPPELDELTA_M... .. oder gar DELTA=[[-1,0],[0,1]], ok dazu nochmal die Umformung mit dem DELTA heraussuchen ok die Bereiche einzeichnen und die gewählte Einsetzkante extra ok function Worker_Matrix_A(P,K) .. die Lücken in P und K irgendwie herausrechnen, nur bei P, ok bei nur "Doppelkite" oder "x_Doppelkite" ist DD unvollständig, das muß noch genauer werden. ok DD_1 geht noch nicht wieder, geht inzwischen wieder, verwechselt aber noch was, ok geht, von GAP kommt DD[i][0]+1 zurück ok touchmove Loslager bewegt sich manchmal langsamer und in entgegengesetzter Richtung, etwa #2442w P7-v ok in Beweglichkeit2(barray) nicht auf max=1 normieren sondern auf 1:1 zu touchmove, ok vorerst gar nicht normieren ok nö trotzdem nochmal schauen, warum nur gar nicht normieren geht, nö so lassen ok 5[k][j]??? ok war Belastungsarray .. die zusätzliche Anpassung DD auf GAP-Reihenfolge woanders machen, eventuell beim Einlesen des GAP-DD .. die 3 globalen Beweglichkeiten herausrechnen mit orthogonalem Komplement ok "#Doppelkite"+"Einsetzkaten" ergibt nur 0+2, ok mit let v100=100 geht dieser Graph jetzt und einige andere auch. .. bei "#Doppelkite"+"javascript" steht ein K[18]=[undefined] drin und das sollte K[18]=undefined sein, ist aber hierfür egal .. Worker_Einsetzkanten_verbessern_pur() schon in INVERT_pur(), im Moment geht das noch nicht. ok alles zu BigInt: ok "Doppelkite" geht mit Big_eps_inv=1000n ok "1DKoN" ergibt nur B=1 statt 2, ok BAMik statt BAMil ok "#2442w" stimmt auch nicht, ok geht auch wieder ok Rechenprobe wieder in Gang bringen, ok da muss Big_1^2 rein ok mehr als 6 Nachkommastellen, ok mit let Big_1=100000000000000n; .. verbessere noch let flag2=(Math.abs(Rat(Big_MA[j][k]))" nimmt "Einsetzkanten" den vorhergehenden Graph ok überall los() mit Checkbit_Worker=true .. Einsetzkanten verbessern auch mit in Display Worker rein. ok Ausrichten geht nicht mehr in der Animation, ok mit Checkbit_Ausrichten jetzt doch .. aber trotzdem nochmal versuchen, auch Checkbox_Ausrichten zu aktivieren. .. nach Ausrichten geht "+10" nicht mehr richtig ok ohne zusätzliches Checkbit_Ausrichten=false (//xxy) geht Ausrichten in Animation wieder .. "Fehlersuch5"da geht "beweglich?" nicht ok HoH-Graph "#2597" mit "weiter mit t=" .. Test-SVG für data:... .. #2630 da geht überhaupt kein Feinjustieren, nur jam+wenige_Winkel und das auch nur mit einem alert nö Rechenfun2() im Worker lassen wegen Ausgabe ERROR in line, .. höhstens mehr Ausgabetext wenn line innerhalb Rechenweg .. #2655 "Einsetzkanten" Beweglichkeit 1 statt 0 .. #2690 da geht "besser annähern" nicht durch, #2693 auch nicht .. wozu wird kikjkk() gebraucht? .. bei ab(..."zusammengefasst") passt was nicht wenn der letzte Knoten dabei ist .. starte_mit() in Rahmen_anfangen() läuft als Worker, deshalb D=50 nötig .. #2655bew? da geht "wenige Winkel" nicht richtig .. auch bei los() ein postMessage() im Worker-Fenster ok Download-Dateiname mit Datum ist automatisch nach 100. —— mehr Rest .. Punkte_in_Vordergrund_bringen() da drin geht weiter() nicht, weil dann verändert sich die Belastungsausgabe .. Belastung als relative Belastung ausgeben. .. isolierte Punkte bei neu nummerieren entfernen .. Belastung ausgeben irgendwie mit .. dabei Fij=fij*ab(i.j)/D .. abweichende Knotengrade in postMessage ausgeben .. RW(...) Winkel zeichnen in TikZ .. //RW(...) ersetzen durch das ursprüngliche RK ok überhaupt Eingabefunktion W(i,j,k,w) wäre ja eine sinnvolle Ergänzung zu M() .. RW_Schnittpunkte bei j<0 —— besser_annaehern_schnell() sortiert nach Belastung ok #2693 besser annähern "...schnell" mit Checkbox "Dreiecks..." und "fair" stoppt am Ende mit Endlosschleife, ok war undefinded nö die ersten beiden Matrizen schon in neue Eingabe "fast perfekt" rein. nö nur in besser_annaehern_schnell nö dazu den KLISTE2 Index mit in APiPjPk packen nö jetzt als IK ok besser_annaehern_schnell() läuft ok ein erstes W(i,j,k,w) ok W() erweitert ok in Ergebnistabelle() .innerText statt .innerHTML, ok .textContent geht ok max Δl=...ok nur wenn >0.0001 nö ein RA(undefined) bei ohne P55-P46, P48-P28, P44-P8 (113 von 12341, noch 176 min) nö war wohl nur dazwischengedrückt was —— suche_Flaeche() ok EW, EW4, EW5 noch zusammenfassen in eine Matrix ok bei neue Eingabe isolierte Punkte löschen ok im Crashkurs anderes Ergebnis beim zweiten "fast perfekt", P6-P12 erst passend dann nicht passend, ok Z(...) in einer extra Schleife