3
该代码不在SFML站点上的教程中。当我编译并运行它时,圆形按比例缩放,因为窗口由用户缩放。我希望圈子保持不变的形状。SFML 2.X中的窗口按比例调整窗口大小的形状.X
当屏幕重新调整大小时,正确的屏幕尺寸和正确的圆弧半径将被打印到控制台,但圆圈绘制到屏幕的方式绝对不是它声称的。圆形不以任何方式在视觉上扭曲,但看起来好像是用不同的值集合来绘制到控制台上。
antialiasingLevel
对形状的黎明没有任何影响,如果有帮助的话。
#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;
}
本教程包含以下内容:[调整大小的事件](http://www.sfml-dev.org/tutorials/2.2/window-events.php#the-resized-event)和[当窗口显示更多调整大小(http://www.sfml-dev.org/tutorials/2.2/graphics-view.php#showing-more-when-the-window-is-resized) – Hiura