0

glTranslate() 的参数指定翻译原点的单位数量。因此,有可能超出显示器。有没有办法标准化我们移动的数量,这样我们就不会超出绘图区域?

4

1 回答 1

6

glTranslate() 的参数指定翻译原点的单位数量。

不(人们应该停止学习固定功能 GL 的另一个原因)。

glTranslate生成一个矩阵,与当前矩阵右乘成为新的当前矩阵。它确实创建了一个平移矩阵,但它不一定从屏幕中心移动。例如,这是完全有效的:

glTranslatef(10.0f, 10.0f, 10.0f);
glTranslatef(0.0f, 50.0f, 0.0f);

这样做也是有效的:

glTranslatef(10.0f, 10.0f, 10.0f);
glRotatef(90.0f, 0.0f, 0.0f, 1.0f);
glTranslatef(0.0f, 50.0f, 0.0f);

这会进行平移,然后围绕 Z 轴旋转 90 度。这会影响执行的最终翻译。

你也可以在里面放一个秤。

如果你想在屏幕上保留一个对象,这取决于,而不是 OpenGL。

于 2012-04-14T21:41:36.390 回答