0

我正在尝试使用 CustomPainter 绘制多边形,这工作正常。然后我想绘制第二个多边形,它与下面的第一个多边形相同,但大小是 X 倍。目前我正在改变路径,如:

polygon1 = new Path();
polygon1.addPolygon(polygonPoints, true);

double scale = 1.5;
Matrix4 matrix4 = Matrix4.identity()
    ..scale(scale,scale,0);
Path polygon2 = Path.from(polygon1)
    ..transform(matrix4.storage);

然而,polygon2 似乎也被翻译了,这是不希望的。我希望它完全位于多边形 1 后面。

我如何实现这一目标?

图片供参考:

多边形 1(绿色)和多边形 2(橙色)远离 (0,0) 且未对齐

在此处输入图像描述

多边形 1(绿色)和多边形 2(橙色)在 ~ (0,0) 处并对齐

在此处输入图像描述

4

1 回答 1

0

我设法通过标准化polygon1 wrt点0来使缩放的polygon2居中,然后如上所述缩放路径,最后使用从点0的偏移量移动两条路径。此外,polygon2需要移动到polygon1,为此我使用了polygon1 的 Rect 参数 bottomCenter。

于 2020-05-24T14:23:30.583 回答