【问题标题】:opengl rotate tangent to a circleopengl旋转切线到​​一个圆
【发布时间】:2011-01-26 14:24:53
【问题描述】:

我现在有一个物体,我绕着垂直 (Y) 轴在一个圆圈中移动。我想旋转这个对象,使其始终与圆的切线对齐,我该怎么做?不确定将 sin/cosine/tan 的哪个组合用作 glRotatef 的第一个参数...

谢谢!

【问题讨论】:

    标签: opengl rotation


    【解决方案1】:

    glRotatef 的第一个参数是角度,以弧度为单位(因此 0 表示不旋转,PI 会前后翻转,2*PI 会一直旋转回原始方向)。

    您可能已经通过反复试验自己回答了这个问题,而花费的时间比提出问题所需的时间还短。

    请注意,如果您选择旋转中心作为圆心而不是对象的中心,则不需要单独的平移步骤。

    【讨论】:

    • 请仔细阅读问题。如果我希望对象以与圆相切的角度旋转,我在询问作为第一个参数传入的值
    • 您不使用sincostan 中的任何一个。角度是这些函数的参数。无论您之前在计算位移时传递给sincos 的角度是什么,都应该是您应该传递给glRotatef 的角度。 glRotatef 将根据需要在内部使用 sincos
    • 原来我让它变得比它需要的复杂得多。最初,我使用 glTranslatef(4*f,0,4*g) 进行圆周运动,其中 f 和 g 是时间的 sin 和 cos 函数。事实证明,您可以只使用平移和旋转来获得相同的效果,并且旋转将始终与圆相切 glRotatef(10*TIME,0,1,0); glTranslatef(0,0,5);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多