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