Révision 2
PyOpenGL-Demo/da/dots.py (revision 2) | ||
---|---|---|
1 |
#!/usr/bin/python |
|
1 |
#!/usr/bin/python3
|
|
2 | 2 |
|
3 | 3 |
# This is statement is required by the build system to query build info |
4 | 4 |
if __name__ == '__build__': |
5 | 5 |
raise Exception |
6 | 6 |
|
7 |
import string |
|
8 |
__version__ = string.split('$Revision: 1.1.1.1 $')[1] |
|
9 |
__date__ = string.join(string.split('$Date: 2007/02/15 19:25:28 $')[1:3], ' ') |
|
7 |
__version__ = str.split('$Revision: 1.1.1.1 $')[1] |
|
8 |
__date__ = str.join('$Date: 2007/02/15 19:25:28 $', ' ') |
|
10 | 9 |
__author__ = 'Tarn Weisner Burton <twburton@users.sourceforge.net>' |
11 | 10 |
|
12 | 11 |
try: |
13 | 12 |
from numpy import * |
14 | 13 |
from numpy.random import * |
15 |
except ImportError, err:
|
|
14 |
except ImportError: |
|
16 | 15 |
try: |
17 | 16 |
from Numeric import * |
18 | 17 |
from RandomArray import * |
19 |
except ImportError, err:
|
|
20 |
print "This demo requires the numpy or Numeric extension, sorry"
|
|
18 |
except ImportError: |
|
19 |
print("This demo requires the numpy or Numeric extension, sorry")
|
|
21 | 20 |
import sys |
22 | 21 |
sys.exit() |
23 | 22 |
import string, sys |
24 | 23 |
from OpenGL.GL import * |
25 |
from OpenGL.GLUT import *
|
|
24 |
from OpenGL.GLUT import * |
|
26 | 25 |
|
27 | 26 |
MY_LIST=1 |
28 | 27 |
NUMDOTS = 500 |
... | ... | |
40 | 39 |
|
41 | 40 |
def display(*args): |
42 | 41 |
global x, y, move_x, move_y, NUMDOTS, NUMDOTS2, MAX_AGE, age |
43 |
glClearColor(0.0, 0.0, 0.0, 0.0)
|
|
44 |
glClear(GL_COLOR_BUFFER_BIT)
|
|
45 |
glColor3f(1.0,1.0,0.0)
|
|
46 |
x = x + move_x
|
|
47 |
y = y + move_y
|
|
48 |
age = age + 1
|
|
49 |
which = greater(age, MAX_AGE)
|
|
50 |
x = choose(which, (x, random(NUMDOTS)))
|
|
51 |
y = choose(which, (y, random(NUMDOTS)))
|
|
52 |
age = choose(which, (age, 0))
|
|
53 |
x = choose(greater(x,1.0),(x,x-1.0)) # very cool - wraparound
|
|
54 |
y = choose(greater(y,1.0),(y,y-1.0))
|
|
55 |
x2 = random(NUMDOTS2)
|
|
56 |
y2 = random(NUMDOTS2)
|
|
57 |
v = concatenate((transpose(array([x,y])), transpose(array([x-.005,y+.005])), transpose(array([x+.005,y-.005])), transpose(array([x2,y2]))))
|
|
58 |
glVertexPointerd(v)
|
|
59 |
glEnableClientState(GL_VERTEX_ARRAY)
|
|
60 |
glDrawArrays(GL_POINTS, 0, len(v))
|
|
61 |
glDisableClientState(GL_VERTEX_ARRAY)
|
|
62 |
glFlush()
|
|
63 |
glutSwapBuffers()
|
|
42 |
glClearColor(0.0, 0.0, 0.0, 0.0) |
|
43 |
glClear(GL_COLOR_BUFFER_BIT) |
|
44 |
glColor3f(1.0,1.0,0.0) |
|
45 |
x = x + move_x |
|
46 |
y = y + move_y |
|
47 |
age = age + 1 |
|
48 |
which = greater(age, MAX_AGE) |
|
49 |
x = choose(which, (x, random(NUMDOTS))) |
|
50 |
y = choose(which, (y, random(NUMDOTS))) |
|
51 |
age = choose(which, (age, 0)) |
|
52 |
x = choose(greater(x,1.0),(x,x-1.0)) # very cool - wraparound |
|
53 |
y = choose(greater(y,1.0),(y,y-1.0)) |
|
54 |
x2 = random(NUMDOTS2) |
|
55 |
y2 = random(NUMDOTS2) |
|
56 |
v = concatenate((transpose(array([x,y])), transpose(array([x-.005,y+.005])), transpose(array([x+.005,y-.005])), transpose(array([x2,y2])))) |
|
57 |
glVertexPointerd(v) |
|
58 |
glEnableClientState(GL_VERTEX_ARRAY) |
|
59 |
glDrawArrays(GL_POINTS, 0, len(v)) |
|
60 |
glDisableClientState(GL_VERTEX_ARRAY) |
|
61 |
glFlush() |
|
62 |
glutSwapBuffers() |
|
64 | 63 |
|
65 | 64 |
|
66 | 65 |
def halt(): |
... | ... | |
98 | 97 |
glutInit(sys.argv) |
99 | 98 |
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) |
100 | 99 |
glutInitWindowSize(300, 300) |
101 |
glutCreateWindow('Dots') |
|
100 |
glutCreateWindow(b'Dots')
|
|
102 | 101 |
setup_viewport() |
103 | 102 |
glutReshapeFunc(reshape) |
104 | 103 |
glutDisplayFunc(display) |
... | ... | |
107 | 106 |
glutKeyboardFunc(keyboard) |
108 | 107 |
glutMainLoop() |
109 | 108 |
|
110 |
print "Use the mouse buttons to control some of the dots."
|
|
111 |
print "Hit any key to quit."
|
|
109 |
print("Use the mouse buttons to control some of the dots.")
|
|
110 |
print("Hit any key to quit.")
|
|
112 | 111 |
main() |
113 | 112 |
|
114 | 113 |
|
Formats disponibles : Unified diff