用opengl画一个图

Draw a graph in opengl

本文关键字:一个 opengl      更新时间:2023-10-16

我想用我的代码创建一个图形(2d图形),如何在opengl中制作一个简单的2d图形?我是新的opengl,所以也许你可以解释我是如何工作的代码,请。下面是我的代码:

    #include <iostream>
using namespace std;
int main ()
{
      double dt = 0.10;    //(it is constant)
      double t = 0.00;
      double dx = 0.10;    //(it is constant)
      double x = 0.00;
      double ddy = 1.00;   //(it is constant)
      double dy = 0.00;
      double y = 1.00;
      cout<<"t   = "<<t<<endl;
      cout<<"dx  = "<<dx<<endl;
      cout<<"x   = "<<x<<endl;
      cout<<"dy  = "<<dy<<endl;
      cout<<"y   = "<<y<<endl;
      cout<<endl;
      while(t<=5) 
      {
                  x = x + dx*dt;
                  dy = dy - ddy * dt * dt;
                  y = y + dy * dt;
                  if (y<=-1)
                  {
                             y = -y;
                             dy = -dy * 0.70;
                  }
      t  = t + dt;
      cout<<"t   = "<<t<<endl;
      cout<<"dx  = "<<dx<<endl;
      cout<<"x   = "<<x<<endl;
      cout<<"dy  = "<<dy<<endl;
      cout<<"y   = "<<y<<endl;
      cout<<endl;
      }
      system("pause");
}

也许你应该看看这里http://en.wikibooks.org/wiki/OpenGL_Programming/Scientific_OpenGL_Tutorial_01

有很好的信息开始绘制曲线。因为你有一个参数化的曲线,你只需要将x,y存储在一个顶点缓冲对象(VBO)中,它的大小与你想要的曲线上的点的数量相同,然后像这样绘制这个VBO:

glDrawArrays(GL_LINE_STRIP, 0, nbPoints);

这将创建一个连续的折线连接所有的点