代码之家  ›  专栏  ›  技术社区  ›  rano

opengles:围绕自身旋转三维模型

  •  2
  • rano  · 技术社区  · 14 年前

    我在iPhone上玩opengles,我试着用手指平移来旋转一个模型。我发现了开源的应用程序分子,让你可以这么做,我正在看代码,但当涉及到旋转我的模型时,我只能绕着一个遥远的空间点旋转(就像它作为卫星在轨道上,我是固定的行星)。 我可以稍后发布代码,可能是按需发布(许多行) 大部分是指分子,你可以在这里找到它 MOLECULES

    2 回复  |  直到 14 年前
        1
  •  4
  •   S.C. Madsen    14 年前

    如果我的记忆正确的话,我认为你需要将模型转换到原点,旋转,然后转换回起始位置以获得你想要的效果。

        2
  •  3
  •   Thomas    14 年前

    绘图代码大致如下所示:

    glLoadIdentity();
    glTranslate(0, 0, -10);
    glRotate(...);
    drawMolecule();
    

    现在重要的是要认识到这些转换是以相反的顺序应用的。如果,在 drawMolecule ,我们指定一个顶点,那么这个顶点 第一 绕给定的轴旋转 glRotate (根据定义,它通过 地方的 分子的起源),以及 然后

    这是有道理的,因为 glTranslate 基本意思是:“翻译这之后的所有东西”。这包括 调用自身,这样旋转的结果也会被转换。如果调用被反转,那么平移的结果将被旋转,从而导致围绕不再经过原点的轴旋转。

    地方的 原点,把 G旋转 最后的