【问题标题】:Rotating a cube so that the front facing face remains square旋转立方体以使正面保持正方形
【发布时间】:2012-05-20 10:49:55
【问题描述】:

在 OpenGL 中,我必须旋转一个立方体(并平移它),使它看起来像这两个图像。

没有任何变换,只有正面的红色脸是可见的。我只是不明白如何旋转它(以便在图像中可以看到顶部和右侧)并保持红脸完全正方形。

我考虑过将它翻译到左下角,但这只会移动红色方块,不会让其他人脸可见。

我正在使用glFrustum(-20, 20, -20, 20, -1, -10);

【问题讨论】:

  • “它不会使其他面孔可见。” -> 然后使用透视投影,它应该可以工作。

标签: c++ c opengl 3d transformation


【解决方案1】:

如果您正在使用透视投影(您就是这样)并且立方体的正面平行于 x-y 平面,那么如果立方体完全位于眼睛空间的一个象限中,您将只能看到其他两个面;也就是说,如果有水平线和垂直线将窗口一分为二,则立方体必须完全位于四个生成的矩形之一内。

显示其他两张脸的其他选项是

  • 使用等角投影
  • 旋转立方体以将其他面带入视野。

为了帮助可视化这一点,请尝试播放Minecraft(比如说)并以不同的方式四处走动,看看不同块的不同侧面是如何进入视野的。

【讨论】:

    【解决方案2】:

    这不是轮换。

    第二张图片看起来像正投影 (glOrtho),但这可能是巧合。

    在任何一种情况下,如果立方体按照您的建议从原点向左下方平移,您只能获得这样的图像。

    【讨论】:

    • +1 :这是翻译。但第二张照片不是正射投影。这是一个骑士投影。
    猜你喜欢
    • 2019-11-16
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 2021-06-22
    • 1970-01-01
    相关资源
    最近更新 更多