规范化glTranslatef()

时间:2012-04-14 21:34:21

标签: c opengl

glTranslate()的参数指定原点翻译的单位数量。因此,有可能超越显示器。有没有办法规范我们移动的数量,以便我们不超出绘图区域?

1 个答案:

答案 0 :(得分: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。