如何使用 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()
添加回答
举报
0/150
提交
取消