2014-03-04 38 views
0

我正在使用OpenGl来绘制图像。现在当我尝试移动图像时,它会移动太多。所以如果我说以下内容:使用px在OpenGl上移动图像?

gl.glTranslatef(0, 1, -5.0f); 
squirrel.draw(gl); 

如果我把一个作为参数,图像现在位于屏幕的一半。我如何做到这一点,所以我可以说这样的事情:

gl.glTranslatef(screen_width - image_width , 0); 

是否有一种替代方法在OpenGl中绘制图像? 我以前用画布绘制图像,我没有问题在屏幕上定位图像。然而,随着openGl我遇到问题。

回答

1

所有你需要记住的是,OpenGL中的屏幕空间范围从-1,-1(左上角)和1,1(右下角)。所以你需要为OpenGL提供规范化的值。要沿x方向从屏幕的一端(-1.0)移动一个点到另一个(1.0),从左到右,必须使用glTranslatef(2.0,0,0)进行平移2.0。这一点在边界上,因此您必须根据对象的实际大小和位置进行调整。