gpt4 book ai didi

c++ - 圆的顶点数组

转载 作者:行者123 更新时间:2023-11-28 04:52:24 24 4
gpt4 key购买 nike

我想知道是否可以在 SFML 中创建圆的 VertexArray。我一直在寻找答案,但没有找到任何有用的东西。此外,我不理解 SFML 文档中写的我可以创建自己的实体的部分,我认为这可能是我实际上想要做的。

编辑:我想这样做是因为我必须画很多圆圈。

谢谢你帮助我

最佳答案

虽然@nvoigt 的回答是正确的,但我发现在我的实现中使用 vector 很有用(有关更多详细信息,请参阅 http://en.cppreference.com/w/cpp/container/vector,查找“c++ 容器”,有几种类型的容器可以优化读/写时间) .

对于上述用例,您可能不需要它,但在未来的实现中可能需要它,并考虑将其作为良好的编码实践。

#include <SFML/Graphics.hpp>
#include <vector>

int main()
{
// create the window
sf::RenderWindow window(sf::VideoMode(800, 600), "My window");


// run the program as long as the window is open
while (window.isOpen())
{
// check all the window's events that were triggered since the last iteration of the loop
sf::Event event;
while (window.pollEvent(event))
{
// "close requested" event: we close the window
if (event.type == sf::Event::Closed)
window.close();
}

// clear the window with black color
window.clear(sf::Color::Black);

// initialize myvector
std::vector<sf::CircleShape> myvector;

// add 10 circles
for (int i = 0; i < 10; i++)
{
sf::CircleShape shape(50);
// draw a circle every 100 pixels
shape.setPosition(i * 100, 25);
shape.setFillColor(sf::Color(100, 250, 50));

// copy shape to vector
myvector.push_back(shape);
}

// iterate through vector
for (std::vector<sf::CircleShape>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
{
// draw all circles
window.draw(*it);
}
window.display();
}

return 0;
}

关于c++ - 圆的顶点数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47871207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com