In my new game, I have designed some original code for customizable platforms that follow a circular path, since the standard Circular Motion is ruthlessly inflexible. It utilizes two objects, a platform and a small waypoint object which represents the center of the circular movement:

Radius of Platform = 0:
->set Radius of Platform to Y("Platform")-Y("Waypoint")
->set CenterX of Platform to X("Waypoint")
->set CenterY of Platform to Y("Waypoint")


Radius of Platform != 0:
->add 1 to Arc of Platform
->set X position of Platform to CenterX("Platform")+Radius("Platform")*Cos(Arc("Pl atform"))
->set Y position of Platform to CenterY("Platform")+Radius("Platform")*Sin(Arc("Pl atform"))


Arc of Platform > 360:
->sub 360 from Arc of Platform

In general, this works very well, even when there are multiple platforms and waypoints. But something odd is happening. These platforms are being used in a large frame (9600x960). When the player spawns right next to the platforms, they work perfectly fine. But when the player spawns far away from them and walks over to where they are, he sometimes slides around on top of them as though they are frictionless!

Any ideas as to what might be causing this, or suggestions for a better method of coding customizable circular motion?