我正在尝试实现一个自定义画家,它可以在 Canvas 上绘制图像(缩小版)并且绘制的图像可以旋转和缩放。
我知道要缩放图像我必须使用缩放方法缩放 Canvas 。
现在的问题是如何在其中心(或任何其他点)旋转缩放后的图像。 canvas 的 rotate 方法只允许在左上角旋转。
最佳答案
Had the same problem , 解决方案是简单地在三行中制作你自己的旋转方法
void rotate(Canvas canvas, double cx, double cy, double angle) {
canvas.translate(cx, cy);
canvas.rotate(angle);
canvas.translate(-cx, -cy);
}
因此,我们首先将 Canvas 移向您想要旋转的点。然后我们沿着左上角(Flutter 的默认设置)旋转,它在坐标空间中是您想要的枢轴,然后将 Canvas 放回所需的位置,并应用旋转。该方法非常有效,只需要 4 次添加即可进行平移,并且旋转成本与原始成本相同。
关于dart - Flutter - 如何使用 Canvas 围绕中心旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51323233/