【发布时间】:2019-12-16 10:05:42
【问题描述】:
我想在 PyOpenGL 中切换 Y 轴和 Z 轴方向。我曾尝试使用矩阵变换,但我无法做到。
代码:
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(self.zoom, -self.zoom, -self.zoom, self.zoom, -5000, 5000)
glMatrixMode(GL_MODELVIEW)
glClearColor(1, 1, 1, 0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadMatrixf(self.m)
地点:
self.zoom = 150
self.m = [[1, 0, 0, 0],
[0, 0, 1, 0],
[0, 1, 0, 0],
[0, 0, 0, 1]]
编辑:这可行:
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(self.zoom, -self.zoom, -self.zoom, self.zoom, -5000, 5000)
up = 1
if self.theta == 360:
up = -1
gluLookAt(self.x, self.y, self.z, 0, 0, 0, 0, up, 0)
glMatrixMode(GL_MODELVIEW)
glClearColor(1, 1, 1, 0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadMatrixf(self.m)
【问题讨论】:
-
"[...] 但我做不到。" - 你必须更具体。究竟是什么问题?这些操作在语法和语义上似乎是正确的。
-
@Rabbid76 我已经添加了我得到的结果的图片。第三张是用GIMP编辑的,不是真图,是我想要实现的
-
您的意思是对
glLoadMatrixf(self.m)的调用有效,但它并没有达到您的预期效果? -
@Rabbid76 是的,场景中的元素没有正确渲染,如您在第一张图片中看到的那样
标签: python opengl matrix pyopengl opengl-compat