Ich habe dies in meinem Line-Drawing Game Starterkit implementiert und die Verwendung der überentwickelten Lösungen vermieden. Sie benötigen wahrscheinlich alle 10 Pixel einen Punkt, damit Sie eine anständig glatte Linie erhalten, ohne zu viel Speicher zu verwenden oder Anrufe zu zeichnen. Dann müssen Sie die Objekte einfach von Punkt A nach B bewegen. Damit sie sich reibungslos auf dem Weg bewegen, drehen Sie sie einfach in die Bewegungsrichtung. Dies geschieht im Laufe der Zeit und nicht sofort, sodass Sie nach einer gekrümmten Linienbewegung glatt werden, ohne Bezier-Kurven oder ähnliches verwenden zu müssen.
Die Punkte werden in einem einfachen Array in einer Path-Klasse gespeichert, die auch weiß, wie der Pfad mit OpenGL gezeichnet wird. Sie können eine beliebige Anzahl von Pfadpunkten haben, aber ich würde sie je nach Gerät und erforderlicher Glätte auf 50 bis 300 beschränken.
Um die Linie zu interpolieren, sollten Sie den Slide Averaging-Algorithmus (Theorie) von McMaster nachschlagen .
Das Objekt bewegt sich nur dann zum ersten Punkt, wenn der Benutzer mindestens zwei Punkte gezeichnet hat, um zu vermeiden, dass sich das Objekt wild dreht. Sobald Sie sich dem ersten Punkt nähern, entspricht dies dem Code des zweiten, dritten, vierten usw.