import numpy as np from OpenGL import GL, GLU from PyQt5.QtWidgets import QOpenGLWidget, QApplication global eyeX, eyeY, eyeZ # gluLookAt 'eye' coordinates eyeX = 0.0 eyeY = 0.0 eyeZ = 10.0 class OpenGLWidget(QOpenGLWidget): def initializeGL(self): GL.glClearColor(0,0,0,1); # GL.glEnable(GL.GL_DEPTH_TEST); # GL.glEnable(GL.GL_LIGHT0); # GL.glEnable(GL.GL_LIGHTING); # GL.glColorMaterial(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT_AND_DIFFUSE); # GL.glEnable(GL.GL_COLOR_MATERIAL); GL.glMatrixMode(GL.GL_PROJECTION); GL.glOrtho(-10.0, 10.0, -10.0, 10.0, -10.0, 10.0) GL.glClear(GL.GL_COLOR_BUFFER_BIT) GL.glMatrixMode(GL.GL_MODELVIEW); GL.glLoadIdentity(); #GL.glClearColor(1.0, 0.0, 1.0, 0.0); # vertices = np.array([0.0, 1.0, -1.0, -1.0, 1.0, -1.0], dtype=np.float32) # # bufferId = GL.glGenBuffers(1) # GL.glBindBuffer(GL.GL_ARRAY_BUFFER, bufferId) # GL.glBufferData(GL.GL_ARRAY_BUFFER, vertices.nbytes, vertices, GL.GL_STATIC_DRAW) # # GL.glEnableVertexAttribArray(0) # GL.glVertexAttribPointer(0, 2, GL.GL_FLOAT, GL.GL_FALSE, 0, None) def paintGL(self): # GL.glDrawArrays(GL.GL_TRIANGLES, 0, 3) GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); GLU.gluLookAt(eyeX, eyeY, eyeZ, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); # GL.glBegin(GL.GL_TRIANGLES); # GL.glColor3f(1.0, 0.0, 0.0); # GL.glVertex3f(-0.5, -0.5, 0); # GL.glColor3f(0.0, 1.0, 0.0); # GL.glVertex3f( 0.5, -0.5, 0); # GL.glColor3f(0.0, 0.0, 1.0); # GL.glVertex3f( 0.0, 0.5, 0); # GL.glEnd(); from math import sin, cos radius = 0.5 halfLength = 3.0 slices = 10 for i in range(slices): theta = float(i) * 2.0 * 3.14 / float(slices) nextTheta = float(i + 1) * 2.0 * 3.14 / float(slices) GL.glColor3f(1.0, 0.0, 0.0) GL.glBegin(GL.GL_TRIANGLE_STRIP) GL.glVertex3f(0.0, halfLength, 0.0) GL.glVertex3f(radius*cos(theta), halfLength, radius*sin(theta)) GL.glVertex3f (radius*cos(nextTheta), halfLength, radius*sin(nextTheta)) GL.glVertex3f (radius*cos(nextTheta), -halfLength, radius*sin(nextTheta)) GL.glVertex3f(radius*cos(theta), -halfLength, radius*sin(theta)) GL.glVertex3f(0.0, -halfLength, 0.0) GL.glEnd() app = QApplication([]) widget = OpenGLWidget() widget.show() app.exec_()