+1 Daumen
1,2k Aufrufe

Die Schieber.caption (N) wird nicht upgedatet sobald der Code in html läuft (unter Cinderella is OK). 

Es treten immer wieder Lücken und Fehler in der Punkte Wolke auf, immer bei n=5,10. Hatte Rundungsfehler im Verdacht - aber woher sollen die kommen? Das Quadrat in der MItte ist, oder besser soll) (n-1) groß sein. Die Katheten der Dreiecke sollten mit dem Mittenquadrat in einer Linie laufen. Das violette Dreieck sollte die A.x+1-Koordinate entlang laufen - geht aber teilweise auf die A.x koordinate runter - woher könnte dieser Effekt kommen - beim Blauen, oben, ähnlich?

blob.png


https://jsfiddle.net/9bcaq7ko/1/


Nachtrag: Hab in den Repeat-Schleifen in die Start/Stop Terme ein paar ceil eingebaut, was Wirkung zeigt. Die Fehler treten nur noch n>12 auf. Das kann doch net sein?

Avatar von

Kann doch sein!

CindyJS macht Rundungsfehler bei Schleiifen-Konstukten: Habs mit while probiert - das gleiche in grün - Schleifenende bei 9 hört aber bei 8 auf. Hab jetzt an die stop-Werte kleine Beträge 10^-6 draufgerechnet, damit läuft es im gegeben Bereich sauber. Die caption Eigenschaft kann in Cindy zur Laufzeit geschrieben werden - im Applet funktioniert das nicht (die 8 am Slider wird nicht upgedatet). Schreib jetzt den Text (drawtext) unten an den Slider ran.

Dann schaun me mal was jetzt kommt

(Wie mach man das Fiddle-Fenster größer. - hab ein Kai-Fiddle geforkt)...

https://jsfiddle.net/gnycwds5/1/

Schaue ich mir bald an! Cool, dass du dich bereits mit CindyJS beschäftigst (!)

Ja, Danke - wie hast Du den Fiddle-Frame größer gemacht?

Ich hab bei dem Beispiel nicht alle Repeat->stop's aufgerundet - für n=5,10 treten noch Fehler auf: Dreieck, grau oben, eine Reihe entlang der Geraden DC bleibt unbesetzt. Der Repeat hört einen Schleifendurchgang zu früh auf!

Der Slider Button (N) läuft auf grund der Mausbewegung runter. Da hatte ich N.y=floor(N.y); vorgesehen, um ganzzahlige Werte zu erhalten - die Mausbewegung veranlasst eine Code-Ausführung und jedesmal, wenn der Code bei N.y=floor(N.y); vorbeit kommt, wird abgerundet, sodass der Slider runterfährt solange die Maus wackelt. Sehr merkwürdig ....

Es ist immer besser, das Problem zu isolieren. Das heißt, statt alle Objekte zu zeichnen, nur eines herauszunehmen.

Ich habe etwas herumprobiert, da ich kein Fan von Wertveränderungen bin. Sprich die 10^(-6) entfernt, zudem die Lücken vermieden, indem ich bei den stop x-Werten die -1 entfernt habe (ein Schuss ins Ungewisse):

https://jsfiddle.net/kai_noack/gnycwds5/18/


PS: Die Embeds der jsfiddles habe ich im globalen CSS für alle Lounges in der Höhe verändert.

1 Antwort

+2 Daumen

Ich habe gesehen, dass das floor() zur Bewegung des Sliders bei Mouseover führte und mit einem round() ersetzt. Auch sollte anstatt csdraw das csmove benutzt werden (erst ausführen, wenn Mouseover).

Aktuelles Resultat:

https://jsfiddle.net/kai_noack/gnycwds5/38/

Sollen die Punkte auch auf den Rand gesetzt werden?

Das "Lückenproblem" tritt nur noch bei n=17 auf.

Avatar von

Erstmal Danke, für die Ersthilfe, muss mir bei Gelegenheit anschauen, was Du eingearbeitet hast. Die start, stop Werte der Repeat Scheifen sind OK, das passt, nur wird gerne mal vor Erreichen der stop Werte abgebrochen.

n=5, da fehlen auch an den Ecken A B C Punkte. Laut dem Artikel (Mathelounge) sollen die inneren Punkte erfasst werden.

Ich hab einen Bugreport verfasst und der Chef persönlich will sich das mal anschauen. Grundsätzlich tut der Code nicht das, was er sollte - wie heißt es immer, man schreibe einen stabilen und sparsamen Algorithmus;-).

Bisher scheint mein Flickschusterwerk noch am stabilsten zu sein

Beispiel

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community