我很确定这是我在 Python 循环语法中的错误,但我终生无法弄清楚出了什么问题。
我在 OSX 上将 Python 与 PyOpenGL 和 GLUT 一起用于一个非常基本的程序:它旨在在 (0,0,0) 周围绘制一个 3D 网格。我已经设法在给定的高度生成了 2D 网格(所以在 y=10 从 x=-10 到 x=10 和从 z=-10 到 z=10 有一个网格),但我做不到遍历 y 坐标。
这个屏幕截图应该有助于说明我的意思。我的预期场景是在 y=0 上方有 10 个这些平面网格,在 y=0 下方有 10 个,形成一个立方体。稍后,我也会将它扩展到 y 轴上的线条,但我之前已经实现了半成品(与我现在遇到的问题相同)所以没什么大不了的。
有人可以让我知道我的代码有什么问题吗?这似乎是一个相当简单的问题,但我已经浪费了几个小时,非常感谢一些帮助。
几个免责声明:
我知道 GLUT 是旧技术,并且大部分代码已被弃用,但这个项目与此无关。
在某些时候,我需要检查并更改 z 坐标和 x 坐标中的“-10 到 10”常量,但是一旦我让这个 y 工作正常,该方法应该很简单。
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
grid_range = 10
def DrawGLScene( ):
i = 0
j = 0
fl_range = float(grid_range)
while (j <= (grid_range*2) ):
while (i <= (grid_range*2) ):
# x grid
glColor3f( 0.0, 1.0, 0.0 )
glBegin( GL_LINES )
glVertex3f( grid_range - i, grid_range - j, -10 )
glVertex3f( grid_range - i, grid_range - j, 10 )
glEnd( )
# z grid
glColor3f( 0.0, 0.0, 1.0 )
glBegin( GL_LINES )
glVertex3f( -10, grid_range - j, grid_range - i )
glVertex3f( 10, grid_range - j, grid_range - i )
glEnd( )
i += 1
j += 1