gpt4 book ai didi

java - Android旋转矩阵不围绕一个点旋转

转载 作者:行者123 更新时间:2023-11-29 23:05:47 25 4
gpt4 key购买 nike

我一直在研究如何在 android 中旋转位图,我唯一能找到的是使用矩阵。这适用于 90 度以下的旋转,但似乎每 90 度旋转点就会 Swing 一次。这是我的代码,如果你想让我发布图片/gif HERE结果请这样说。谢谢你的帮助

    Matrix leftMat = new Matrix();
leftMat.setRotate ((float) (debug),thrustWidth,0);
Bitmap leftThruster = Bitmap.createBitmap (thruster,0,0, thruster.getWidth(),thruster.getHeight (),leftMat,true);
leftThruster.setHasAlpha(true);
canvas.drawBitmap(leftThruster,(int) (shipX +leftCords[0]),(int) (shipY+leftCords[1]-cameraY),null);

编辑:图像的角似乎试图与“边界框”的角相遇,但我似乎无法得到更多。

编辑:更新的代码(不是精确的副本,但希望它提供了所有重要的东西,为了清楚起见,我还用适用的常量替换了所有变量)

    private Bitmap thruster = BitmapFactory.decodeResource(context.getResources(),R.drawable.thruster);
private float debug = 0;
public void draw(Canvas canvas) {
debug ++;
Matrix leftMat = new Matrix();
leftMat.postRotate(debug,0,0);
Bitmap leftThruster = Bitmap.createBitmap (thruster,0,0, thruster.getWidth(),thruster.getHeight(),leftMat,false);
leftThruster.setHasAlpha(false);
canvas.drawBitmap(leftThruster, 300, 300,null);

最佳答案

更新:我找到了一个解决方案,虽然我不知道为什么该代码不起作用,但我找到了一个替代方案。而不是 canvas.drawBitmap(leftThruster, 300, 300,null); 我将其替换为 canvas.drawBitmap(thruster,leftMat,null); 同时还添加了 leftMat.postTranslate(300,300); 到 leftMat。

关于java - Android旋转矩阵不围绕一个点旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56571885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com