在 OpenGL 中,我必须旋转一个立方体(并平移它),使其看起来像这两张图像中的样子。
在没有任何变换的情况下,只有正面的红色脸是可见的。我只是不明白如何旋转它(以便顶部和右侧像图像中那样可见)并使红色的脸保持完全正方形。
我考虑过将它翻译到左下角,但这只会移动红色方 block ,不会使其他面孔可见。
我正在使用 glFrustum(-20, 20, -20, 20, -1, -10);
最佳答案
如果您使用的是透视投影(您就是这样)并且立方体的正面平行于 x-y 平面,那么如果立方体完全位于眼睛空间的一个象限内,您将只能看到另外两个面;也就是说,如果有水平线和垂直线将窗口切成两半,则立方体必须完全位于四个生成的矩形之一内。
显示另外两张脸的其他选项是
- 使用等距投影
- 旋转立方体以使其他面进入视野。
为了帮助形象化,请尝试播放 Minecraft (比方说)并以不同的方式四处移动,看看不同方 block 的不同侧面是如何进入视野的。
关于c++ - 旋转立方体,使正面保持正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672768/