dart - Flutter - 如何使用 Canvas 围绕中心旋转图像

标签 dart flutter

我正在尝试实现一个自定义画家,它可以在 Canvas 上绘制图像(缩小版)并且绘制的图像可以旋转和缩放。

我知道要缩放图像我必须使用缩放方法缩放 Canvas 。

现在的问题是如何在其中心(或任何其他点)旋转缩放后的图像。 canvas 的 rotate 方法只允许在左上角旋转。

Here is my implementation that can be extended

最佳答案

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/

相关文章:

google-maps - Flutter:如何在谷歌地图中显示位置图层

flutter - 省略在ListTile中领先

autocomplete - 如何修复Dart提示背景色

dart - 如何从 JavaScript 调用 Dart 函数

flutter - Flutter中的TextFormField验证

redux - 如何在带有 Redux 的 Flutter 中显示 snacker(或推送另一个页面)?

flutter - 如何在flutter中覆盖pdf文件?

dart - 我在使用 Flutter Preview 1 吗

flutter - 如何在 onPressed() 中动态更改按钮的背景颜色

timer - 如何在 flutter 中从零开始计数器计时器?