为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python 和 OpenGL 中使用 glReadPixels?

如何在 Python 和 OpenGL 中使用 glReadPixels?

尚方宝剑之说 2021-06-03 14:46:44
如何使用 glReadPixels() 获取像素颜色的值?我做了很多尝试,但得到了错误的价值。我的背景颜色是蓝色(0,1,1),我画了一个边界颜色为红色(1,0,0)的圆圈,我想获得任何边界点的颜色。所以它必须给我红色。但我得到了背景颜色。这是我在 Python3 和 OpenGL 中的代码from OpenGL.GLU import *from OpenGL.GLUT import *import timefrom  math import *import numpyimport sysdef init():    glClearColor(0.0,1.0,1.0,0.0)    glClear(GL_COLOR_BUFFER_BIT)    glPointSize(3.0)    glMatrixMode(GL_PROJECTION)    glLoadIdentity()    gluOrtho2D(0.0,640.0,0.0,640.0)def circle():    for i in range(361):        m=float(50*cos(i*pi/180.0))+320        n=float(50*sin(i*pi/180.0))+320        setpixc(m,n)    print(m,n)    redinput()def redinput():    global x,y    x=int(input("enter x:"))    y=int(input("enter y:"))    setpixc(x,y)    pixel=[]    c=glReadPixels(x,y,1.0,1.0,GL_RGB,GL_UNSIGNED_BYTE,None)    print(c)    string_pixels=numpy_pixel.tolist()    print(string_pixels)def setpixc(xcor,ycor):    glBegin(GL_POINTS)    glColor3f(1.0,0.0,0.0)    glVertex2f(xcor,ycor)    glEnd()    glFlush()def Display():    circle()    print("hello")def main():    glutInit(sys.argv)    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)    glutInitWindowSize(600,600)    glutInitWindowPosition(10,10)    glutCreateWindow("line-dda")    glutDisplayFunc(Display)    init()    glutMainLoop()main()
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信