如何围绕点旋转形状

时间:2015-02-15 00:08:11

标签: sfml

在SFML中,如何使用变换在某个点周围旋转形状?我知道如何使用cos和sin,但想了解如何使用转换。

我认为我的问题是我没有获得sfml界面。这是一个例子:

// Draw circle at center
sf::CircleShape c;
c.setFillColor(sf::Color::Red);
c.setPosition(width / 2, height / 2);
c.setRadius(50);
c.setOrigin({50, 50});

现在,我如何在帧刷新循环内围绕屏幕中心移动和旋转圆圈?

1 个答案:

答案 0 :(得分:1)

原来有旋转功能,它取一个中心点。

sf::CircleShape c;
c.setFillColor(sf::Color::Red);
c.setPosition(width / 2.f, height / 2.f - 100);
c.setRadius(50);
c.setOrigin({50, 50});

float angle = 1.0;

sf::Transform t;

while(true)
{
    window.clear(sf::Color::Black);

    t.rotate(angle, { width/2.f, height / 2.f });

    window.draw(c, t);

    window.display();
}