1UnitedPower: [Fast gelöst] Noch ne kleinigkeit

Beitrag lesen

Meine Herren!

Iteration wäre eigentlich einfach. Man müsste nur so viele Schritte simulieren, wie die Geschwindigkeit hoch ist. Kurz: Geschwindigkeit = 1 ... 2 ... 3 usw. bis zur eigentlichen geschwindigkeit. Schon hat man jeden Punkt auf der Linie erzeugt.

Wenn die Geschwindigkeit, Position und Zeit nur diskrete Werte annehmen können, dann ergibt dieser Satz einigermaßen Sinn. Diser Fall ist eher untypisch und beschränkt unnötig. In deinem Beispiel sind die Zeiteinheiten diskret unterteilt in Simulationsschritte. Positionen sind diskret über das Pixel-Raster definiert. Geschwindigkeiten haben aber demnach die Einheit: Pixel pro Simulationsschritt. Und das ist keine diskrete Menge. Deshalb ist die Idee, die da oben formulierst, Nonsens, auf diese Art müsstest du unendlich viele Zwischenschritte interpolieren.

Es gäbe aber in diesem Fall einen einfacheren weg.

Na hoffentlich ;)

Da die anderen Kugeln (IMMER) fix sind und es nur eine bewegte kugel geben wird, kann man den Zwischenabstand errechnen.

Das kann man zu einem gegebenen Zeitpunkt auch bei bewegten Objekten. (Die heisenbergsche Unschärferelation mal außer Acht gelassen, die spielt bei der Entwicklung von Spiele-Physik-Engines eher keine Rolle :P)

Man rechnet einfach Abstand zwischen 2 kugeln und zieht den radius beider kugeln ab.

Wieso nochmal den Radius abziehen? Wenn du den Abstand zweier Kugeln berechnet hast, dann muss da nichts mehr abgezogen werden. Der Oberflächen-Abstand berechnet sich ja schon aus dem Abstand der Mittelpunkte und den Radien. Doppelt gemoppelt ist hier falsch.

Dies nutzt man als Geschwindigkeit und prüft dann, ob der neue Zielpunkt zu einer Kollision führt.

Junge, Junge. Würfelst du einfach, wenn es um solche Berechnungen geht? Du spielst mit physikalischen Einheiten herum, als bestehe da überhaupt kein Zusammenhang. Ich weiß das ist hart, aber Informatik und Physik erfordern nun mal Mathematik. Man addiert nicht einfach irgendwelche Geschwindigkeiten zu irgendwelchen Strecken. Mach dir insbesondere mal den Zusammenhang klar, der zwischen Strecke, Geschwindigkeit und Zeit herrscht. Dann wirst du hoffentlich auch auf den Begriff der Ableitung, bzw. der Aufleitung stoßen.

Das wäre 1 Iteration und würde weniger Leistung fressen. Natürlich sollte man es nur mit Kugeln machen, deren entfernung unterhalb der geschwindigkeit der ausgangskugel liegen.

Wenn du Schwierigkeiten mit Einheiten hast, dann versuch mal Beispielsätze zu basteln, das hilft oft irgendwelche Irrtümer zu identifizieren. Ich forme mal ein Beispiel aus deinem Satz da oben:

"Natürlich sollte man es nur Kugeln machen, die weniger als 5 km/h entfernt voneinander sind."

Nachts ist es kälter als draußen.

--
“All right, then, I'll go to hell.” – Huck Finn