Я пытаюсь повернуть изображение вокруг его центра и масштабировать его до разрешения экрана телефона (в android).Вращение и масштабирование изображения в Opengl ES 2.0
Вот мой код:
// ----------------------------------------
// Scaling:
float scaleWidth = 2/screenWidth;
float scaleHeight = 2/screenHeight;
// ----------------------------------------
// Start position of the picture
int x = 60;
int y = 60;
float startX = x*scaleWidth;
float startY = y*scaleHeight;
// End position of the picture
float endX = (x + bmpWallSize) * scaleWidth;
float endY = (y + bmpWallSize) * scaleHeight;
// Center of the bitmap:
float midX = (x + (bmpWallSize/2)) * scaleWidth;
float midY = (y + (bmpWallSize/2)) * scaleHeight;
// ----------------------------------------
// Rotating:
gl.glTranslatef(midX, midY, 0f);
gl.glRotatef(r,0, 0,-1);
gl.glTranslatef(-midX, -midY, 0);
r++; if (r > 360) r = 1;
без вращения картина выглядит нормально, но как только он вращается он изменяет размер (площадь становится прямоугольник). Я думаю, что это потому, что мне нужно масштабировать вершины изображения после вращения, а не раньше, но я не знаю, как это сделать. Я много искал в googled, но не мог найти ответа. Спасибо за любую помощь
Глупый вопрос: Вы пробовали переключать X и Y для масштабирования? – hexafraction