You can build the circle by yourself using:
center.x + radius * cos(angle)
center.y + radius * sin(angle)
for each point of the circle.
Or use getPoint to get the local position of each point of your sf::CircleShape (or other shape), getTransform to get its sf::Transform and use transformPoint on each point to convert them to their global position.
This is the code I use to check if a vertex belongs to the rectangle shape.
void FreeDraw::convertToVertex(sf::RectangleShape box)
{
box.setOrigin(sf::Vector2f(0, 0));
sf::Vector2f minCoords = box.getPosition();
sf::Vector2f maxCoords = box.getPosition() + box.getSize();
for(int y = minCoords.y; y < maxCoords.y; ++y)
{
for(int x = minCoords.x; x < maxCoords.x; ++x)
{
if(box.getGlobalBounds().contains(sf::Vector2f(x, y)))
{
sf::Vertex dot;
dot.position = sf::Vector2f(x, y);
dot.color = sf::Color::Blue;
line.append(dot);
}
}
}
}