⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zrgb.py

📁 reduced python source for embedded apps
💻 PY
字号:
#! /usr/bin/env python#   zrgb  (Requires Z buffer.)## This program demostrates zbuffering 3 intersecting RGB polygons while# in doublebuffer mode where, movement of the mouse with the LEFTMOUSE # button depressed will, rotate the 3 polygons. This is done by compound# rotations allowing continuous screen-oriented rotations. ##    Press the "Esc" key to exit.  from gl import *from GL import *from DEVICE import *idmat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]def main() :	#	# old and new mouse position	#	#	mode = 0	omx = 0	mx = 0	omy = 0	my = 0	#	objmat=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]	#	initialize ()	#	draw_scene (objmat)	#	while (1) :		#		dev, val = qread()		#		if dev == ESCKEY :			if val :				break				# exit when key is going up, not down			# this avoids the scenario where a window 			# underneath this program's window			# would otherwise "eat up" the up-			# event of the Esc key being released			return        			#		elif dev == REDRAW :			reshapeviewport()			draw_scene(objmat)			#		elif dev == LEFTMOUSE:			omx = mx			omy = my			if val :				mode = 1			else :				mode = 0		elif dev == MOUSEX :			omx = mx			mx = val			#print omx, mx			objmat = update_scene(objmat,mx,my,omx,omy,mode)			#		elif dev == MOUSEY :			omy = my			my = val			#print omy, my			objmat = update_scene(objmat,mx,my,omx,omy,mode)			#def initialize () :	#	foreground ()	keepaspect(5, 4)	w = winopen('Zbuffered RGB')	#	doublebuffer()	RGBmode()	gconfig()	zbuffer(1)	lsetdepth(0x0, 0x7FFFFF)	#	qdevice(ESCKEY)	qdevice(LEFTMOUSE)	qdevice(MOUSEX)	qdevice(MOUSEY)def update_scene (mat, mx, my, omx, omy, mode) :	#	if mode == 1 :		mat = orient(mat, mx, my, omx, omy)		draw_scene(mat)	return matdef orient (mat, mx, my, omx, omy) :	#	#	pushmatrix()	loadmatrix(idmat)	#	if mx - omx : rot (float (mx - omx), 'y')	if omy - my : rot (float (omy - my), 'x')	#	multmatrix(mat)	mat = getmatrix()	#	popmatrix()	#	return matdef draw_scene (mat) :	RGBcolor(40, 100, 200)	clear()	zclear()	#	perspective(400, 1.25, 30.0, 60.0)	translate(0.0, 0.0, -40.0)	multmatrix(mat)	#	# skews original view to show all polygons	#	rotate(-580, 'y')	draw_polys()	#	swapbuffers()polygon1 = [(-10.0,-10.0,0.0),(10.0,-10.0,0.0),(-10.0,10.0,0.0)]polygon2 = [(0.0,-10.0,-10.0),(0.0,-10.0,10.0),(0.0,5.0,-10.0)]polygon3 = [(-10.0,6.0,4.0),(-10.0,3.0,4.0),(4.0,-9.0,-10.0),(4.0,-6.0,-10.0)]def draw_polys():	bgnpolygon()	cpack(0x0)	v3f(polygon1[0])	cpack(0x007F7F7F)	v3f(polygon1[1])	cpack(0x00FFFFFF)	v3f(polygon1[2])	endpolygon()	#	bgnpolygon()	cpack(0x0000FFFF)	v3f(polygon2[0])	cpack(0x007FFF00)	v3f(polygon2[1])	cpack(0x00FF0000)	v3f(polygon2[2])	endpolygon()	#	bgnpolygon()	cpack(0x0000FFFF)	v3f(polygon3[0])	cpack(0x00FF00FF)	v3f(polygon3[1])	cpack(0x00FF0000)	v3f(polygon3[2])	cpack(0x00FF00FF)	v3f(polygon3[3])	endpolygon()main ()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -