我不知道描述它的正确术语,这就是为什么我在 Google 中找不到它。我想要的只是缩放对象,特别是 2D 矩形,但将其保持在其 XY 坐标上。
我目前的解决方案是这样的:
glTranslatef(x, y, 0);
glScalef(scaleX, scaleY, 0);
glTranslatef(-x, -y, 0);
drawRect(x, y, width, height, texture);
我只是将 glScale 假装为 glRotate 在其中心旋转,它有点工作,但我可以看到它的坐标在缩放到其他值时的微小调整。
而且,更好的做法是 glTranslate 或仅在顶点上应用诸如 x,y 之类的变量。从这两个切换时我看不出有什么区别,但我担心添加“推送和弹出矩阵”会影响场景中其他对象的行为和我的程序的性能,因为我将使用很多这样的矩形。
更新:
所以你可以想象我想要实现的简单程度