Daniela: Kann nicht auf "style"-Attribut zugreifen

Beitrag lesen

Das liegt an der Sinusberechung, das kostet.

Die hab ich ja dann auskommentiert. Aber wie kriegt man die Dinger sonst dazu, sich elegant auf der x-Achse zu bewegen? Und ist die Zufallszahlenerzeugung nicht langsamer als Sinus? Ausserdem brauch ich den Sinus ja nur ungefähr, man muss die unendliche Reihe ja nicht so weit fortführen... Ich könnte ja mal versuchen, die Sinusfunktion zu emulieren... Wenn ich mir mal was in den Kopf setze...

So eine Berechnung (sin, cos oder auch z.b. Wurzeln ziehen) ist immer aufwändig und zeitintensiv, sogar in Assembler. Die Zufallzahl dürfte um einige Faktoren  schneller erzeugt sein.

Beim Sinus kann man wirklich net viel einsparen, hab ich gerade feststellen müssen, weil da kommt man um die FPU net herum (glaub ich zumindest, so gut bin ich in Mathe auch net). Aber wie ich mich kenne, werde ich jetzt sicher wieder tagelang an einer schnellen Näherungs-Implementation basteln, nur um mir zu beweisen dass es net geht. In Javascript hab ich gerade eine gemacht, aber die ist leider nur ungefähr so langsam wie die bereitgestellte Funktion. Ganzzahl-Wurzelziehen von großen Zahlen kann dagegen sehr schnell gehen, sofern man es nur näherungsweise braucht (wenn die Zahl nur gerade Bits hat, ist es sogar ganz exakt).

Ausserdem bleiben die Schneeflocken nicht unten liegen, sondern bekommen dann ein neues Objekt zugewiesen und fangen wieder von oben an.

Auch das ist nicht optimal. Ständig delete und new aufrufen verzögert unnötig.

Ist ja nicht ständig, nur wenn eine unten ankommt, was ja pro Sekunde nicht so oft geschieht. Da ist die Sinusberechnung sicher langsamer.

Das stimmt. Aber du gibst den Speicher frei um ihn direkt danach wieder neu zu belegen. Dass ist überflüssig und auch nicht im Sinne von Objekt orientierter Programmierung.

Das sehe ich ein. Aber kann ich denn den Konstruktor des Objekts nochmal aufrufen ohne es vorher zu löschen, damit es neue Anfangswerte erhält?? Oder muss ich das Belegen mit Anfangswerten in eine andere Funktion auslagern und diese vom Konstruktor (oder wie man das Ding hier nennt) aus aufrufen?

Man kann in Assembler sicher auch keine Fließkommazahlen Bitweise bearbeiten, da der Aufbau dieser Zahlen unterschiedlich sein kann.

Doch, kann man. Sehr gut sogar, dafür gibt's eigene OPcodes, und jeder, der direkt mit der FPU arbeitet, kommt um die wohl net herum. Damit verschiebt man doch eigentlich nur das Komma um eine Binärstelle, mehr ist es nicht.

Statt Math.round kannst du in JS auch parseInt verwenden und dann sollte es gehen.

Das versteh ich nicht, wie soll denn parseInt da helfen??