本文整理汇总了Python中opengltk.OpenGL.GL.glFrustum方法的典型用法代码示例。如果您正苦于以下问题:Python GL.glFrustum方法的具体用法?Python GL.glFrustum怎么用?Python GL.glFrustum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类opengltk.OpenGL.GL
的用法示例。
在下文中一共展示了GL.glFrustum方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: beginTile
# 需要导入模块: from opengltk.OpenGL import GL [as 别名]
# 或者: from opengltk.OpenGL.GL import glFrustum [as 别名]
def beginTile(self):
if self.CurrentTile <= 0:
self.setup()
# Save user's viewport, will be restored after last tile rendered
self.ViewportSave = GL.glGetIntegerv(GL.GL_VIEWPORT)
# which tile (by row and column) we're about to render
if self.RowOrder==TR_BOTTOM_TO_TOP:
self.CurrentRow = self.CurrentTile / self.Columns
self.CurrentColumn = self.CurrentTile % self.Columns
elif self.RowOrder==TR_TOP_TO_BOTTOM:
self.CurrentRow = self.Rows - (self.CurrentTile / self.Columns) - 1
self.CurrentColumn = self.CurrentTile % self.Columns
else:
raise RuntimeError
assert(self.CurrentRow < self.Rows)
assert(self.CurrentColumn < self.Columns)
border = self.TileBorder
# Compute actual size of this tile with border
if self.CurrentRow < self.Rows-1:
tileHeight = self.TileHeight
else:
tileHeight = self.ImageHeight - (self.Rows-1) * \
(self.TileHeightNB) + 2 * border
if self.CurrentColumn < self.Columns-1:
tileWidth = self.TileWidth
else:
tileWidth = self.ImageWidth - (self.Columns-1) * \
(self.TileWidthNB) + 2 * border
# Save tile size, with border
self.CurrentTileWidth = tileWidth
self.CurrentTileHeight = tileHeight
GL.glViewport(0, 0, tileWidth, tileHeight) #tile size including border
# save current matrix mode
matrixMode = GL.glGetIntegerv(GL.GL_MATRIX_MODE)[0]
GL.glMatrixMode(GL.GL_PROJECTION)
GL.glLoadIdentity()
# compute projection parameters
self.tileleft = left = self.Left + (self.Right - self.Left) \
* (self.CurrentColumn * self.TileWidthNB - border) \
/ self.ImageWidth
self.tileright = right = left + (self.Right - self.Left) * \
self.TileWidth / self.ImageWidth
self.tilebottom = bottom = self.Bottom + (self.Top - self.Bottom) \
* (self.CurrentRow * self.TileHeightNB - border) / \
self.ImageHeight
self.tiletop = top = bottom + (self.Top - self.Bottom) * self.TileHeight / \
self.ImageHeight
if self.Perspective:
GL.glFrustum(float(left), float(right),
float(bottom), float(top),
float(self.Near), float(self.Far))
else:
GL.glOrtho(float(left), float(right),
float(bottom), float(top),
float(self.Near), float(self.Far))
# restore user's matrix mode
GL.glMatrixMode(int(matrixMode))
示例2: reshape
# 需要导入模块: from opengltk.OpenGL import GL [as 别名]
# 或者: from opengltk.OpenGL.GL import glFrustum [as 别名]
def reshape(self, w, h):
GL.glViewport( 0, 0, w, h)
GL.glMatrixMode( GL.GL_PROJECTION)
GL.glLoadIdentity()
GL.glFrustum( -1.0, 1.0, -1.0, 1.0, 1.5, 20.0)
GL.glMatrixMode( GL.GL_MODELVIEW)
示例3:
# 需要导入模块: from opengltk.OpenGL import GL [as 别名]
# 或者: from opengltk.OpenGL.GL import glFrustum [as 别名]
GLUT.glutInit (sys.argv)
GLUT.glutInitDisplayMode (GLUT.GLUT_DOUBLE | GLUT.GLUT_RGB | GLUT.GLUT_DEPTH)
GLUT.glutCreateWindow ("join styles")
GLUT.glutDisplayFunc (DrawStuff)
#GLUT.glutMotionFunc (MouseMotion)
# initialize GL
GL.glClearDepth (1.0)
GL.glEnable (GL.GL_DEPTH_TEST)
GL.glClearColor (0.0, 0.0, 0.0, 0.0)
GL.glShadeModel (GL.GL_SMOOTH)
GL.glMatrixMode (GL.GL_PROJECTION)
# roughly, measured in centimeters
GL.glFrustum (-9.0, 9.0, -9.0, 9.0, 50.0, 150.0)
GL.glMatrixMode(GL.GL_MODELVIEW)
# initialize lighting
GL.glLightfv (GL.GL_LIGHT0, GL.GL_POSITION, lightOnePosition)
GL.glLightfv (GL.GL_LIGHT0, GL.GL_DIFFUSE, lightOneColor)
GL.glEnable (GL.GL_LIGHT0)
GL.glLightfv (GL.GL_LIGHT1, GL.GL_POSITION, lightTwoPosition)
GL.glLightfv (GL.GL_LIGHT1, GL.GL_DIFFUSE, lightTwoColor)
GL.glEnable (GL.GL_LIGHT1)
GL.glEnable (GL.GL_LIGHTING)
GL.glEnable (GL.GL_NORMALIZE)
GL.glColorMaterial (GL.GL_FRONT_AND_BACK, GL.GL_DIFFUSE)
GL.glEnable (GL.GL_COLOR_MATERIAL)
InitStuff ()