Well the way I did it was to track 2 seperate locations for the bobs, you have the current position which you draw to the screen and you have the target position which is were you move to. Then when you change from one shape to another you set the new shape into the target positions, if the current bob is in a different place to the target one you move it a small amount towards the target position say each loop, do it slow and smooth enough and it appears as if the shapes morph between each other.
Code example would be something like this were pointsx()pointsy()pointsz() are were the bob currently is and tpointx(),tpointy(),tpointz() are were it need to move to.
For t=0 To Number_Of_Points <--- this is the number of bobs the object has basicly
If tpointx(t) > pointsx((t) Then pointsx((t) = pointsx((t) + 1
If tpointx(t) < pointsx((t) Then pointsx((t) = pointsx((t) - 1
If tpointy(t) > pointsy(t) Then pointsy(t) = pointsy(t) + 1
If tpointy(t) < pointsy(t) Then pointsy(t) = pointsy(t) - 1
If tpointz(t) > pointsz(t) Then pointsz(t) = pointsz(t) + 1
If tpointz(t) < pointsz(t) Then pointsz(t) = pointsz(t) - 1
Next
Ofc you would have setup the storage arrays before hand, I have them seperate but you ofc can use multi arrays it just makes the example easier to follow.
hope that helps
