2014-11-25 54 views
-1

使用Tao.Freeglut和Tao.OpenGl。 我试图通过输入此代码来创建一些点。不能用c#绘制一条线和一个点Tao.OpengGL

但是当我运行它时,它只显示一个白色的窗口,但没有任何点。 是否有人知道如何解决这个问题。(同样的问题,当我尝试使用GL_LINES 2分)

using Tao.Freeglut; 
using Tao.OpenGl; 

public static void init() 
     Gl.glClearColor(1.0f, 1.0f, 1.0f, 0.0f); 
     Gl.glColor3f(0.0f, 0.0f, 1.0f); 
     Gl.glPointSize(4); 
     Gl.glMatrixMode(Gl.GL_PROJECTION); 
     Gl.glLoadIdentity(); 
     Glu.gluOrtho2D(0.0, 400, 0.0, 300.0); 

    } 

    public static void myDisplay() 
    { 

     Gl.glClear(Gl.GL_COLOR_BUFFER_BIT); 
     Gl.glBegin(Gl.GL_POINT); 
     { 
      Gl.glVertex2i(50, 50); 
      Gl.glVertex2i(100, 100); 
      Gl.glVertex2i(100, 150); 
      Gl.glVertex2i(200, 200); 
      Gl.glVertex2i(200, 250); 
      Gl.glEnd(); 
     } 
     Gl.glFlush(); 
    } 

    static void Main() 
    { 
     Glut.glutInit(); 
     Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB); 
     Glut.glutInitWindowPosition(50, 100); 
     Glut.glutInitWindowSize(400, 300); 
     Glut.glutCreateWindow("Test 2"); 

     init(); 
     Glut.glutDisplayFunc(myDisplay); 
     Glut.glutMainLoop(); 
    } 
+3

请修改您的问题标题,使其比“帮助”更具描述性。并重复标签。 – Filburt 2014-11-25 10:52:13

+2

[学会写出好标题](http://stackoverflow.com/help/how-to-ask)。说实话,我还没有读你的问题。更好的标题带来更好的答案 – 2014-11-25 10:54:22

+0

[First try - graphical program]可能的重复(http://stackoverflow.com/questions/23597472/first-try-graphical-program) – 2014-11-25 17:01:08

回答

3
Gl.glBegin(Gl.GL_POINT); 

会引起GL_INVALID_ENUM错误,因为GL_POINT是不是在glBegin有效的参数。退房the documentation一种绘制模式是有效的。至少在一帧结束时,您还应该检查OpenGL错误。

+1

您应该提到正确的枚举是'GL_POINTS'。 – 2014-11-25 13:33:24

+0

你也可以提到直接模式('glBegin' ...'glEnd')已被弃用。 – datenwolf 2014-11-25 13:53:49

+0

谢谢。首先,当我输入GL_POI并且弹出这个GL_POINT up – Peace 2014-11-26 02:57:56