hi,
das Thema dieser Frage hat nur am Rande was mit Javascript zu tun, eigentlich ist es eher Mathematik.
Ich möchte mit Javascript ein Objekt auf einer elliptischen Bahn bewegen. (Die Ellipse sei breiter als hoch, bzw. ggf. wäre, falls doch einmal der gegenteilige Fall auftreten sollte, die Vorgehensweise umzukehren.)
Grundsätzlich nicht allzu schwer, ich gehe von einer Ellipse in der 1. Hauptlage aus, habe die Formel
[latex]\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1[/latex]
und stelle diese nach y um, und "bewege" das Objekt dann auf der Ellipsenbahn, in dem ich den Wert von x von 0 bis a/2 und zurück variiere. Noch ein bisschen triviales Vorzeichengebastel dazu, um das Objekt immer im richtigen Quadranten darzustellen, und schont bewegt sich mein Objekt auf einer elliptischen Bahn.
Was daran allerdings noch unschön aussieht: Wenn ich in einem festen Zeitinterval den Wert von x um gleichgroße Schritte verändere, so fängt das bewegte Objekt "an zu rennen", wenn es sich den bei seitlichsten Punkten nähert, und wenn es wieder zu einem der beiden Punkte oben oder unten kommt, wird es wieder langsamer.
Es ist also noch keine schön "fließende" Bewegung.
Also muss ich wohl einen sinnvollen Weg finden, wenn x gleich 0 ist mit größeren Schrittweiten zu beginnen, die dann kleiner werden, wenn x sich dem Wert von a/2 nähert [1].
Ich habe die vernebelte Vorstellung, dass mir der/ein Logarithmus dabei behilflich sein könnte - habe allerdings keine genaue Idee, wie (hab' die Dinger schon zu Schulzeiten nicht sonderlich leiden können, und mich seitdem auch nicht mehr gerne damit beschäftigt).
Wer hat eine für mich?
gruß,
wahsaga
[1] Alternative wäre eventuell, statt der Schrittweite die Zeitintervalle zu verändern. Damit könnte man wohl ebenso eine gleichmäßigere Bewegung hinbekommen, allerdings dürften die "Sprünge" des Objektes damit immer noch unterschiedlich weit ausfallen.
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }