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