如何使用 sharpgl (C#) 绘制线条
How to draw lines using sharpgl (C#)
我正在尝试使用 sharpgl 在 c# 中画线,但是当我编译代码时,它给我的控制台充满了白色而不是线,如何解决这个问题或者我的 code.Here 是代码。
private static int width = 400, height = 300;
static void Main(string[] args)
{
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB);
Glut.glutInitWindowSize(width, height);
Glut.glutCreateWindow("OpenGL Tutorial");
init();
Glut.glutDisplayFunc(OnDisplay);
Glut.glutMainLoop();
}
private static void OnDisplay()
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glColor3f(0.0f, 0.4f, 0.2f);
Gl.glBegin(Gl.GL_LINES);
Gl.glVertex2i(180, 15);
Gl.glVertex2i(10, 145);
Gl.glEnd();
Gl.glFlush();
}
static void init()
{
Gl.glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glOrtho(0.0, 200.0, 0.0, 1.0, -1.0, 1.0);
}
您的线路完全在可见坐标范围之外。对 glOrtho()
的调用指定了映射到 window 矩形的坐标范围:
Gl.glOrtho(0.0, 200.0, 0.0, 1.0, -1.0, 1.0);
此调用的第 3 个和第 4 个参数定义了 bottom 和 top,即 y 坐标的范围。因此,y坐标的可见范围将为[0.0, 1.0].
在为您的线指定的顶点中:
Gl.glVertex2i(180, 15);
Gl.glVertex2i(10, 145);
两个顶点都远超出此范围,y 坐标分别为 15 和 145。
如果您扩大 y 坐标的范围,您应该能够看到这条线。例如,使用与 x 坐标相同的范围:
Gl.glOrtho(0.0, 200.0, 0.0, 200.0, -1.0, 1.0);
我正在尝试使用 sharpgl 在 c# 中画线,但是当我编译代码时,它给我的控制台充满了白色而不是线,如何解决这个问题或者我的 code.Here 是代码。
private static int width = 400, height = 300;
static void Main(string[] args)
{
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB);
Glut.glutInitWindowSize(width, height);
Glut.glutCreateWindow("OpenGL Tutorial");
init();
Glut.glutDisplayFunc(OnDisplay);
Glut.glutMainLoop();
}
private static void OnDisplay()
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glColor3f(0.0f, 0.4f, 0.2f);
Gl.glBegin(Gl.GL_LINES);
Gl.glVertex2i(180, 15);
Gl.glVertex2i(10, 145);
Gl.glEnd();
Gl.glFlush();
}
static void init()
{
Gl.glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glOrtho(0.0, 200.0, 0.0, 1.0, -1.0, 1.0);
}
您的线路完全在可见坐标范围之外。对 glOrtho()
的调用指定了映射到 window 矩形的坐标范围:
Gl.glOrtho(0.0, 200.0, 0.0, 1.0, -1.0, 1.0);
此调用的第 3 个和第 4 个参数定义了 bottom 和 top,即 y 坐标的范围。因此,y坐标的可见范围将为[0.0, 1.0].
在为您的线指定的顶点中:
Gl.glVertex2i(180, 15);
Gl.glVertex2i(10, 145);
两个顶点都远超出此范围,y 坐标分别为 15 和 145。
如果您扩大 y 坐标的范围,您应该能够看到这条线。例如,使用与 x 坐标相同的范围:
Gl.glOrtho(0.0, 200.0, 0.0, 200.0, -1.0, 1.0);