Ich versuche, das Multiball-Objekt dieser App zu reproduzieren (Sie können es herunterladen, um es selbst zu sehen). Drücken Sie 'e', wenn Sie das Objekt auf Ihrem Computer emulieren möchten (dies ist ein Tablet-Programm). Hier ist ein Video als Beispiel, auch wenn ich Ihnen dringend rate, den Editor herunterzuladen, um eine bessere Ansicht zu haben.
Grundsätzlich habe ich 3 Parameter (Anziehung, Reibung und Geschwindigkeit). Die Massenfeder wirkt auf einen 2D-Plan. Beim Berühren des Bildschirms "dreht" sich die Kugel um den Kontaktpunkt. Soweit ich das verstanden habe, ist das Gleichgewicht der Kontaktpunkt von den Finger auf dem Bildschirm.
Wenn mir jemand erklären könnte, wie ich diesen Effekt reproduzieren könnte, wäre ich wirklich dankbar.
Basierend auf dem reinen Betrachten eines ein paar Sekunden langen Videoclips, ohne in die Interna der Software einzudringen, scheint es plausibel, dass sich der Ball auf dem Bildschirm gemäß den Bewegungsgleichungen für einen ungezwungenen 2D-gedämpften harmonischen Oszillator bewegt. Vermietung Und seien Koordinaten des Balls, und sei die Position des Gleichgewichts der Feder (von der Sie sagten, dass sie die Position ist, an der Ihr Finger den Bildschirm berührt), sind die Bewegungsgleichungen
Man muss auch Anfangsbedingungen angeben. Ich gehe davon aus, dass der Simulator die obigen Gleichungen mit der Gleichgewichtsposition löst, wenn Sie auf den Bildschirm tippen Dabei handelt es sich um die Position Ihres Fingers und die Anfangsposition und -geschwindigkeit um die Position und Geschwindigkeit des Balls zum Zeitpunkt des Antippens des Bildschirms.
Die letzte Zutat, die man braucht, sind Randbedingungen, um zu sagen, was der Ball tut, wenn er den Rand des Bildschirms erreicht. Ich vermute, der Code verwendet reflektierende Randbedingungen, also zum Beispiel in dem Moment, in dem die Koordinate trifft entweder den minimal oder maximal zulässigen Wert von , die Geschwindigkeit in der Richtung ändert Vorzeichen.
Um dies tatsächlich zu codieren, können Sie im Allgemeinen Standardalgorithmen verwenden, um die Differentialgleichungen zu integrieren, z. B. ein Runge-Kutta-Verfahren . Oder Implementierungen dieser Methoden in der von Ihnen verwendeten Programmiersprache. Für dieses spezifische Problem, das linear ist, können Sie eine analytische Lösung verwenden (explizite Formel, die die Bewegung angibt), siehe beispielsweise Gleichung 72 der Anmerkungen zu Wellen und Schwingungen von Richard Fitzpatrick
Andreas
JSmith
Chemomechanik
JSmith