日期:2014-05-17  浏览次数:20945 次

求助。我这样画多个多边形逼近圆为什么只有一条直线?
    SharpGL.OpenGL gl = this.openGLControl1.OpenGL;

            gl.Clear(OpenGL.COLOR_BUFFER_BIT | OpenGL.DEPTH_BUFFER_BIT);
   

            gl.LoadIdentity();
           gl.Translate(0.0f, 0.0f, -12.0f);
           
    

           int i;
           float testa = 2.0f / 50;
           gl.Begin(OpenGL.QUAD_STRIP);
           gl.Color(1.0f, 1.0f, 1.0f);
           for ( i = 0; i < 50; i++)
            gl.Vertex(-1.0f + i * testa,i*testa* Math.Tanh(90 - 45 / 25 * i), 0.0f);
           for (i = 49; i > 0; i--)
               gl.Vertex(-1.0f + i * testa,-i * testa * Math.Tanh(90 - 45 / 25 * i), 0.0f);
        
           gl.End();
           gl.Flush();



这里是画一个圆心在(0,0,0)半径为1的圆,不过结果却是一条从(0,1,0)到(0,-1,0)的直线。

------解决方案--------------------
没用过这个,不过给你的建议是把Vertex中的三个参数先用算出来
float x=-0.1f + i * testa;
???

然后debug看看怎么回事