reorg
This commit is contained in:
85
pyqt/test002.py
Executable file
85
pyqt/test002.py
Executable file
@@ -0,0 +1,85 @@
|
||||
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_()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user