Virtual Joints to Solve the Inverse Kinematics Problem