【发布时间】:2021-01-12 17:24:30
【问题描述】:
我想创建一个用户可以多次调用的函数,比如 drawLine(x,y),并且这些所有行都应该一次显示(不能替换)。我是 PyOpenGL(和 OpenGL)的新手,我不知道该怎么做。到目前为止,我知道如何使用这样的方法绘制固定数量的线:
def main_loop(window):
while (
glfw.get_key(window, glfw.KEY_ESCAPE) != glfw.PRESS and
not glfw.window_should_close(window)
):
glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
glBegin(GL_LINES)
glVertex2f(0.0,0.0)
glVertex2f(1.0,1.0)
glEnd()
glfw.swap_buffers(window)
glfw.poll_events()
在这里,我可以多次重复 glBegin(GL_LINES) - glEnd() 块以使用固定参数绘制固定数量的线。但是变线任务怎么做呢?
换句话说, 我想创建一个函数,在使用 x 和 y 坐标调用该函数时,会在屏幕上已经显示的一行行中添加一行。根据用户交互,该函数可能会被多次调用。我能想到添加行的唯一方法是在这个 main_loop 函数中插入 glBegin-glEnd 块(如上面的代码所示),但如何在运行时执行此操作?
【问题讨论】:
-
@Rabbid76 我想创建一个函数,在使用 x 和 y 坐标调用该函数时,会在屏幕上已经显示的一行行中添加一行。根据用户交互,该函数可能会被多次调用。我知道如何创建一个函数,但我不确定如何设计这样一个函数。这是因为我能想到添加行的唯一方法是在这个 main_loop 函数中插入 glBegin-glEnd 块,但是在运行时如何做到这一点?
-
抱歉,我的第一个答案是针对 pygame。我现在已将其更改为 glfw。
-
明白要点了!非常感谢!
标签: opengl graphics line pyopengl opengl-compat