Flutter - Как повернуть изображение вокруг оси X с перспективой и нарисовать его на холсте с помощью CustomPainter - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь нарисовать ui.Image на холсте в CustomePainter с вращением по оси X и преобразованием перспективы.Проблема в том, что перспектива искажена вправо.Вопрос в том, как убрать этот сдвиг, чтобы изменение перспективы было симметричным?

Что я получу: [1]: https://imgur.com/hdphpHF

Некоторые вещи, такие как то, что мне нужно: [2]:https://imgur.com/AepZ1Xq

@override
  void paint(Canvas canvas, Size size) {
    var paint = Paint();
    paint.color = Colors.blue;
    var cw = max(size.width, size.height);
    var ch = min(size.width, size.height);
    var iw = image.width;
    var ih = image.height;

    canvas.save();
    canvas.drawPaint(paint);

    var degrees = -45.0;
    var matrix4 = Matrix4.identity()
      ..setEntry(3, 2, 0.0018)
      ..rotateX(math64.radians(degrees));
    canvas.transform(matrix4.storage);
    canvas.drawImage(image, new Offset((cw - iw) / 2, (ch - ih) / 2), paint);

    canvas.restore();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...