我正在使用OpenGl来绘制图像。现在,当我尝试移动图像时,它移动得太多了。如果我说以下内容:
gl.glTranslatef(0, 1, -5.0f);
squirrel.draw(gl);
如果我输出一个作为参数,图像现在位于屏幕的一半。我如何做到这一点,我可以这样说:
gl.glTranslatef(screen_width - image_width , 0);
是否有另一种在OpenGl中绘制图像的方法? 我之前使用画布绘制图像,我在屏幕上定位图像没有问题。然而,对于openGl,我遇到了问题。
答案 0 :(得分:1)
您需要记住的是,OpenGL中的屏幕空间范围为-1,-1(左上角)和1,1(右下角)。因此,您需要为OpenGL提供规范化值。要沿x方向从屏幕的一端(-1.0)移动一个点到另一个(1.0),从左到右,您将需要使用glTranslatef(2.0,0,0)来翻译2.0。此点位于边框上,因此您必须根据对象的实际大小及其位置进行调整。