Well I'm using a fixed time step (see links posted above) to update my game, independent of how it's rendered.
To achieve a fixed time step you just update the game at a constant rate, for example 60 times / sec
sf::Clock c;
const sf::Time timePerFrame = sf::seconds(1.0f / 60.0f);
sf::Time timeSinceLastUpdate = sf::Time::Zero;
The game loop would then look something like this
while (window.isOpen()) {
timeSinceLastUpdate += c.restart();
// poll events
sf::Event evt;
while (window.pollEvent(evt)) {
// ...
}
// update
while (timeSinceLastUpdate > timePerFrame) {
timeSinceLastUpdate -= timePerFrame;
game.update(timePerFrame);
}
// render (clear, draw, display)
game.render();
}
Inside game.update you'd then use timePerFrame to update your physics etc.
To use linear interpolation with your view, you could calculate the new position with
currentPos = currentPos + (fraction * (targetPos - currentPos))
where currentPos and targetPos are the position (e.g. a float or a vector) and fraction (a float) is how fast it will be interpolated, for example 0.1