gpt4 book ai didi

python - glTranslatef 在 glRotatef 之后变得一团糟

转载 作者:行者123 更新时间:2023-12-04 10:32:06 26 4
gpt4 key购买 nike

我是 PyOpenGL 的新手。我使用它编写了一个简单的代码来显示一个立方体,您可以使用键盘在它周围导航。但是,我注意到在调用 glRotatef 命令后,它会改变您的视角,而不是对象的位置。但是, glTranslatef 不适用于透视,而是文字坐标系。换句话说,在调用 glRotatef 命令 90* 之后,本来可以让您向前移动的 glTranslatef 命令现在将您向左移动。有没有像 glTranslatef 这样的函数,只是它随着旋转而变化,所以你不会得到奇怪的 Action ,或者你可以做一些解决方法来改变你基于旋转传递给 glTranslatef 的值?

最佳答案

操作如 glTranslate glRotate 定义一个(平移或旋转)矩阵并将当前矩阵乘以新矩阵。
matrix multiplication不是 commutative .如果要旋转模型并独立于旋转平移模型,则必须在平移之前进行旋转,分别将平移矩阵乘以旋转矩阵:
(OpenGL 矩阵乘法必须从右到左读取):

modelmatrix = translation * rotation

分别 glTranslate之前 glRotate :

glTranslate(x, y, z)
glRotate(angle, ax, ay, az)

关于python - glTranslatef 在 glRotatef 之后变得一团糟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60368232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com