For the lniks, if the number of links is one less than a power of 2, you could set the middle link to the average position of the ends(I'm sure you know how to do that), and then place the other links at the average positions of multiple links and/or ends.
Simple, really. (I'd guess you've got that already.)
For swinging movement, use counters with decimal values for the positions, and another for the speed. Use these calculations for the counters: (Assuming you named the counters after what they represent)
Set BallX to BallX + (Cos(Angle between ball and POR(0=right, turning to the right) + 90) * Value(BallSpeed))
Set BallY to BallY + (Sin(Angle between ball and POR(0=right, turning to the right) + 90) * Value(BallSpeed))
Or use path movement.I'm not sure. Does that help (any)?