mirror of
https://github.com/python/cpython.git
synced 2025-11-01 14:11:41 +00:00
Initial revision
This commit is contained in:
parent
6da6aebfdb
commit
453bd408bd
18 changed files with 2990 additions and 0 deletions
140
Demo/sgi/gl/backface.py
Executable file
140
Demo/sgi/gl/backface.py
Executable file
|
|
@ -0,0 +1,140 @@
|
|||
#! /usr/local/python
|
||||
|
||||
# backface
|
||||
#
|
||||
# draw a cube that can run with backface() turned on or off.
|
||||
# cube is moved when LEFTMOUSE is pressed and mouse itself is moved.
|
||||
|
||||
from gl import *
|
||||
from DEVICE import *
|
||||
from GL import *
|
||||
|
||||
CUBE_SIZE = 200.0
|
||||
CUBE_OBJ = 1
|
||||
|
||||
def main () :
|
||||
#
|
||||
x = 0
|
||||
y = 0
|
||||
moveit = 0
|
||||
#
|
||||
initialize()
|
||||
#
|
||||
while (1) :
|
||||
#
|
||||
while (qtest()) :
|
||||
dev, val = qread()
|
||||
#
|
||||
if dev == ESCKEY :
|
||||
backface(0)
|
||||
return
|
||||
#
|
||||
elif dev == REDRAW :
|
||||
reshapeviewport()
|
||||
drawcube(x,y)
|
||||
#
|
||||
elif dev == LEFTMOUSE :
|
||||
#
|
||||
# LEFTMOUSE down
|
||||
moveit = val
|
||||
#
|
||||
elif dev == BKEY :
|
||||
backface(1)
|
||||
drawcube(x,y)
|
||||
#
|
||||
elif dev == FKEY :
|
||||
backface(0)
|
||||
drawcube(x,y)
|
||||
#
|
||||
if moveit :
|
||||
x = getvaluator(MOUSEX)
|
||||
y = getvaluator(MOUSEY)
|
||||
drawcube(x,y)
|
||||
|
||||
|
||||
def initialize () :
|
||||
foreground ()
|
||||
keepaspect (1, 1)
|
||||
gid = winopen('backface')
|
||||
winset(gid)
|
||||
winconstraints()
|
||||
#
|
||||
doublebuffer()
|
||||
gconfig()
|
||||
shademodel(FLAT)
|
||||
#
|
||||
ortho(-1024.0, 1024.0, -1024.0, 1024.0, -1024.0, 1024.0)
|
||||
#
|
||||
qdevice(ESCKEY)
|
||||
qdevice(REDRAW)
|
||||
qdevice(LEFTMOUSE)
|
||||
qdevice(BKEY)
|
||||
qdevice(FKEY)
|
||||
qenter(REDRAW,gid)
|
||||
#
|
||||
backface(1)
|
||||
|
||||
#
|
||||
# define a cube
|
||||
def cube () :
|
||||
#
|
||||
# front face
|
||||
pushmatrix()
|
||||
translate(0.0,0.0,CUBE_SIZE)
|
||||
color(RED)
|
||||
rectf(-CUBE_SIZE,-CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
|
||||
popmatrix()
|
||||
#
|
||||
# right face
|
||||
pushmatrix()
|
||||
translate(CUBE_SIZE, 0.0, 0.0)
|
||||
rotate(900, 'y')
|
||||
color(GREEN)
|
||||
rectf(-CUBE_SIZE,-CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
|
||||
popmatrix()
|
||||
#
|
||||
# back face
|
||||
pushmatrix()
|
||||
translate(0.0, 0.0, -CUBE_SIZE)
|
||||
rotate(1800, 'y')
|
||||
color(BLUE)
|
||||
rectf(-CUBE_SIZE,-CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
|
||||
popmatrix()
|
||||
#
|
||||
# left face
|
||||
pushmatrix()
|
||||
translate(-CUBE_SIZE, 0.0, 0.0)
|
||||
rotate(-900, 'y')
|
||||
color(CYAN)
|
||||
rectf(-CUBE_SIZE,-CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
|
||||
popmatrix()
|
||||
#
|
||||
# top face
|
||||
pushmatrix()
|
||||
translate(0.0, CUBE_SIZE, 0.0)
|
||||
rotate(-900, 'x')
|
||||
color(MAGENTA)
|
||||
rectf(-CUBE_SIZE,-CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
|
||||
popmatrix()
|
||||
#
|
||||
# bottom face
|
||||
pushmatrix()
|
||||
translate(0.0, -CUBE_SIZE, 0.0)
|
||||
rotate(900, 'x')
|
||||
color(YELLOW)
|
||||
rectf(-CUBE_SIZE,-CUBE_SIZE,CUBE_SIZE,CUBE_SIZE)
|
||||
popmatrix()
|
||||
|
||||
def drawcube(x,y) :
|
||||
#
|
||||
pushmatrix()
|
||||
rotate(2*x, 'x')
|
||||
rotate(2*y, 'y')
|
||||
color(BLACK)
|
||||
clear()
|
||||
cube()
|
||||
popmatrix()
|
||||
swapbuffers()
|
||||
|
||||
|
||||
main ()
|
||||
Loading…
Add table
Add a link
Reference in a new issue