gpt4 book ai didi

OpenGL glRotate 和 glTranslate 顺序

转载 作者:行者123 更新时间:2023-12-01 23:15:54 24 4
gpt4 key购买 nike

我正在尝试绕轴旋转立方体,我正在做的是:

    glTranslatef(0.0f, 0.0f, -60.0f);
glRotatef(angle, 0.0f, 1.0f, 0.0f);

我期望它移动到 -60 并绕 y 轴旋转一圈,但它只是在 -60 坐标处绕自身旋转。当我这样写时:

    glRotatef(angle, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, -60.0f);

我得到了我需要的东西,但我不明白为什么?他们为什么要做相反的事?有人可以解释一下吗?

最佳答案

当您应用变换时,它会在本地应用。将其视为您正在移动的坐标系。您从代 TableView 的坐标系开始,然后相对于其自身变换该坐标系。因此,在第一种情况下,您将沿坐标系的 Z 轴平移坐标系 -60,然后在新原点绕新 Y 轴旋转坐标系。您绘制的任何内容都会在新的坐标系中绘制。

一旦您习惯了它,这实际上提供了一种更简单的方式来思考转换。您不必记住两个单独的坐标系:一个用于应用变换的坐标系,另一个用于绘制几何图形的坐标系。

关于OpenGL glRotate 和 glTranslate 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852791/

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