У меня есть растровое изображение, которое я хотел бы повернуть вокруг точки на холсте. Точка, которую я хочу повернуть, не является центром растрового изображения. Я использую матрицу. Вот пример того, что у меня есть.Поворот растрового изображения вокруг точки NOT center для растрового изображения
Bitmap image = ContentManager.getInstance().getImage(imageId);
Matrix matrix = new Matrix();
matrix.setTranslate(-image.getWidth()/2f, -image.getHeight()/2f);
matrix.postRotate(rotationDegrees);
matrix.postTranslate(x/scaleX, y/scaleY);
matrix.postScale(scaleX, scaleY);
paint.setAlpha(alpha);
canvas.drawBitmap(image, matrix, paint);
Я хочу, чтобы манипулировать этот код немного не вращается вокруг центральной точки растра, но с другой точки. Чтобы проиллюстрировать более четко, я создал это изображение:
.
Я попробовал все, что я могу думать от установки
matrix.setTranslate(-image.getWidth()/2f, -image.getHeight()/2f);
в
matrix.setTranslate(pivotPoint.x, pivotPoint.y);
и много других вещей. В результате растровое изображение всегда отходит от того места, где я этого ожидал. (например, поверните его по центру экрана на 90 градусов, поместите растровое изображение на 90 градусов от того места, где оно было, и, следовательно, оно будет повернуто.) Растровое изображение всегда поворачивается вокруг своей центральной точки, а затем попадает в случайное пятно на экран.