这段代码来自于SFML网站上的教程。当我编译并运行它时,圆形会随着用户调整窗口大小而按比例缩放。我希望圆形保持不变的形状。
当屏幕尺寸被改变时,正确的屏幕尺寸和正确的圆形半径都会被打印到控制台上,但是圆形在屏幕上的绘制方式明显与其声称的方式不同。圆形在视觉上没有失真,但看上去好像是用一组与控制台上打印的值不同的值来绘制的。
如果有帮助的话,抗锯齿级别对绘制形状没有影响。
当屏幕尺寸被改变时,正确的屏幕尺寸和正确的圆形半径都会被打印到控制台上,但是圆形在屏幕上的绘制方式明显与其声称的方式不同。圆形在视觉上没有失真,但看上去好像是用一组与控制台上打印的值不同的值来绘制的。
如果有帮助的话,抗锯齿级别对绘制形状没有影响。
#include <iostream>
#include <SFML/Graphics.hpp>
int main()
{
sf::ContextSettings settings;
settings.antialiasingLevel = 8;
sf::RenderWindow window(sf::VideoMode(200, 200), "Title", sf::Style::Default, settings);
sf::CircleShape shape(100);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
else if (event.type == sf::Event::Resized)
{
std::cout << "resize: (" << event.size.width << ',' << event.size.height << ") -> " << shape.getRadius() << std::endl;
}
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}