If you're going to use
move(), you'll need to move back to the centre when you've drawn it, ready for the next time.
cos and sin return a value between 0 and 1 so your "ring" has a radius of 1 whereas the circle that you're using to draw it has a radius of 10.
This would make your code work:
for (int i = 0; i < 360; i += 20)
{
const float ringRadius = 65.f;
shape.move(ringRadius * cos(i*PI / 180), ringRadius * sin(i*PI / 180));
window.draw(shape);
shape.move(-ringRadius * cos(i*PI / 180), -ringRadius * sin(i*PI / 180));
}
but I'm not sure it's the best method. I would probably recommend using setPosition inside the loop and set the position from there.
e.g.
shape.setPosition(window.getSize().x / 2 + ringRadius * cos(i*PI / 180), window.getSize().y / 2 + ringRadius * sin(i*PI / 180));
instead of the moves.
Here it is again but casting to float explicitly (stops warnings):
shape.setPosition(static_cast<float>(window.getSize().x / 2 + ringRadius * cos(i*PI / 180)), static_cast<float>(window.getSize().y / 2 + ringRadius * sin(i*PI / 180)));