glTranslate()的参数指定原点转换的单位数量.因此,有可能超越显示器.有没有办法规范我们移动的数量,以便我们不超出绘图区域?
glTranslate()的参数指定原点转换的单位数量.
不(人们应该停止学习固定功能GL的另一个原因).
glTranslate
生成一个矩阵,右边乘以当前矩阵,成为新的当前矩阵.它确实创建了一个平移矩阵,但它不一定从屏幕中心移动.例如,这是完全有效的:
glTranslatef(10.0f, 10.0f, 10.0f);
glTranslatef(0.0f, 50.0f, 0.0f);
Run Code Online (Sandbox Code Playgroud)
这样做也是有效的:
glTranslatef(10.0f, 10.0f, 10.0f);
glRotatef(90.0f, 0.0f, 0.0f, 1.0f);
glTranslatef(0.0f, 50.0f, 0.0f);
Run Code Online (Sandbox Code Playgroud)
这进行平移,然后围绕Z轴旋转90度.这会影响最终执行的翻译.
你也可以在那里扔一个比例.
如果你想在屏幕上保留一个对象,那取决于你,而不是OpenGL.