Flutter 颤振:使用Float64List Matrix4在CustomPaint中变换路径

Flutter 颤振:使用Float64List Matrix4在CustomPaint中变换路径,flutter,graphics,flutter-layout,Flutter,Graphics,Flutter Layout,我试图旋转一些路径,但没有找到一个片段,matrix4通常没有很好的文档记录。如果其他人有这个问题,这就是我的结论,首先,关于它背后的数学以及如何使用matrix4 在我的演示中,我使用了箭头。由于顺序很重要,我在(0,0)处绘制它,然后围绕z轴旋转它,最后将尖端移动到请求的点 Path\u getArrow(偏移量,双alpha){ 路径a=路径(); a、 移动到(箭头大小,-箭头大小); a、 lineTo(0,0); a、 lineTo(箭头大小,箭头大小); final transla

我试图旋转一些路径,但没有找到一个片段,matrix4通常没有很好的文档记录。如果其他人有这个问题,这就是我的结论,首先,关于它背后的数学以及如何使用matrix4

在我的演示中,我使用了箭头。由于顺序很重要,我在(0,0)处绘制它,然后围绕z轴旋转它,最后将尖端移动到请求的点

Path\u getArrow(偏移量,双alpha){
路径a=路径();
a、 移动到(箭头大小,-箭头大小);
a、 lineTo(0,0);
a、 lineTo(箭头大小,箭头大小);
final translateM=Float64List.fromList([
1,             0,     0, 0,
0,             1,     0, 0,
0,             0,     1, 0,
offset.dx,offset.dy,0,1]
);
最终rotateM=Float64List.fromList([
cos(alpha),sin(alpha),0,0,
-sin(alpha),cos(alpha),0,0,
0,         0,       1, 0,
0,         0,       0, 1]
);
最终b=a.变换(旋转em);
最终c=b.变换(translateM);
返回c;
}