Flutter: масштабирование контура приводит к тому, что фигуры не выравниваются, как мне выровнять?
Я пытаюсь нарисовать многоугольник с помощью 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 также транслируется, что нежелательно. Я бы хотел, чтобы он был идеально позади polygon1.
Как мне этого добиться?
Фотографии для справки:
Многоугольник 1 (зеленый) и Многоугольник 2 (оранжевый) далеко от точки (0,0) и НЕ выровнен
Многоугольник 1 (зеленый) и Многоугольник 2 (оранжевый) в точке ~ (0,0) и выровнен
1 ответ
Мне удалось центрировать масштабированный многоугольник 2 путем нормализации многоугольника 1 относительно точки 0, затем масштабирования пути, как указано выше, и, наконец, сдвига обоих путей с использованием смещения от точки 0. Кроме того, многоугольник 2 необходимо сместить относительно многоугольника 1, и для этого я использовал Параметр Rect polygon1 bottomCenter.