C++ 使用SFML VertexArray制作抛物线曲线:左侧未正确渲染

C++ 使用SFML VertexArray制作抛物线曲线:左侧未正确渲染,c++,sfml,C++,Sfml,我是SFML新手,我正在尝试使用sf::VertexArray打印x^n的图形 render()函数有两个参数:窗口和一个名为“函数”的std::vector,它引入了抛物线,如{“x^2”、“x^4”…}: void渲染(RenderWindow和window,const std::vector和functions) { 用于(常量自动和函数:函数) { //渲染x^n; 自动s=func; s[0]=s[1]='0';//从s中删除“x^” 尺寸; 标准::stringstream ss(

我是SFML新手,我正在尝试使用
sf::VertexArray
打印x^n的图形

render()
函数有两个参数:窗口和一个名为“函数”的
std::vector,它引入了抛物线,如{“x^2”、“x^4”…}:

void渲染(RenderWindow和window,const std::vector和functions)
{
用于(常量自动和函数:函数)
{ 
//渲染x^n;
自动s=func;
s[0]=s[1]='0';//从s中删除“x^”
尺寸;
标准::stringstream ss(s);
ss>>n;
顶点阵列曲线(基本类型::LineStrip,100);
对于(float x=0.f;x
下面是我的
main()
函数:

intmain()
{
向量函数;
std::cout>count;
std::cin.ignore();

std::cout对于
x=0
,您的顶点仍然有
window.getSize().x/2
作为x坐标。如果
x
已经在窗口坐标中,则不应再次添加中心。您看到的左半部分可能是因为线条隐式地从(0,0)开始,我对SFML不太了解,无法判断。@Botje,我必须在窗口的中心打印一条抛物线,因此我必须将window.getSize().x/2添加到x坐标。或者,可能我只是误解了您的意思?您必须确保(0,0)在窗口的中心结束,是的。但是你已经在窗口坐标上迭代了,所以你应该减去窗口大小的一半,而不是增加它。或者,你不需要在窗口坐标上循环,然后让x为负数,这也行得通。