[英]Rotation and translation at a specific point
我需要在特定点旋转图像,然后将其平移到屏幕上的特定点。
我要旋转的点在图片的中心。
转换有效,但旋转无效。
我有一个位图矢量,并且正在使用“画布”和“矩阵”。
码:
for (Bitmap image:images)
{
//rotation
double angle=Math.toDegrees(rotation);
Matrix matrix=new Matrix();
matrix.postRotate((float)angle,finalMap.getWidth()/2-1,0);
//transform
matrix.setTranslate(position.x,position.y);
//print on screen
c.drawBitmap(image,matrix, paint);
}
尝试按以下顺序更改轮换/翻译呼叫(完全按照以下顺序进行):
matrix.setTranslate(position.x,position.y);
matrix.preRotate((float)angle,finalMap.getWidth()/2-1,0);
它之所以无法像您目前所拥有的那样起作用,是因为您的setTranslate()调用正在丢弃您之前所做的旋转,而只是将其替换为对单位矩阵执行的转换。 以“ set”前缀开头的矩阵转换方法将仅应用转换,就好像之前没有发生任何事情一样。
如果您想了解更多,这是一个有用的答案: https : //stackoverflow.com/a/8197896/2464728
“轮换”不是什么意思? 怎么会做不到您期望的? 我最初想知道将0用作y旋转点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.