ротации матрицы на 90 градусов и увеличения масштаба, изображение перемещается за пределы экрана.
Без ротации скейлится отлично.
Как можем ИСПРАВИТЬ?
Порядок операций с матрицей имеет значение. Например ,сначала сделать translate, а потом scale - не то же самое, если делать scale, а потом translate.
Надо брать учебник по линейной алгебре и смотреть формулы для таких афинных преобразований,придумать как сделать что б не вылезало.
У нас есть класс Matrix.
еще ты можешь каждые данные сохранять в матрицу, которая будет хранить все изменения сразу, то есть примерно так: Matrix dataMatrix = new Matrix(); matrix.setRotate(angle, xCenter, yCenter); matrix.reset(); dataMatrix.postConcat(matrix); matrix.reset(); matrix.setScale(scaleValue, scaleValue, xCenter, yCenter); dataMatrix.postConcat(matrix); И вот в этой dataMatrix будут все изменения, которые ты уже можешь применять к нужному тебе компоненту
Обсуждают сегодня