Du überschreibst alle 100ms die Länge des bisher seit dem letzten Richtungswechsel zurückgelegten Weg. Beim Richtungswechsel merkst Du dir den neuen Winkel. Die bisher zurückgelegte STrecke (die Länge des letzten Segmentes) schreibst Du dann an die Stelle des letzten Richtungswechsels.
PS: Wieso ist GetNextPosition keine Methode von TRealPoint? Und wieso nimmst Du nicht Double statt Real?