Использование ластика поверх изображения в Flutter - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю своеобразное приложение для рисования, которое позволяет рисовать поверх фонового изображения. Есть пара инструментов, таких как ручка, а затем есть ластик. В идеале мы просто закрашиваем фоновый цвет, но это изображение. У нас была идея убрать точки, которые были у нас под пальцем, когда мы перемещались по экрану, но смещения и локальное положение не совпадали (они были как 40 (единиц?) Выключены).

              onPanUpdate: (DragUpdateDetails details) {
                //Adds the point you are tapping on to the '_points' list as Offset(x,y). Later we draw those points.

                if (tool == 'pen') {
                  RenderBox object = context.findRenderObject();
                  Offset _localPosition =
                      object.globalToLocal(details.globalPosition);
                  _points = List.from(_points)..add(_localPosition);
                } else if (tool == 'eraser') {
                  RenderBox object = context.findRenderObject();
                  Offset _localPosition =
                      object.globalToLocal(details.globalPosition);
                  _points = List.from(_points)
                    ..removeWhere(
                      (offset) {
                        if (offset == null) return false;
                        if (offset.dx.round() == _localPosition.dx.round() &&
                            offset.dy.round() == _localPosition.dy.round()) {
                          return true;
                        }
                        return false;
                      },
                    );

                  //This part is not working.
                }
                setState(() {});
              },

Если бы был другой метод, который я мог бы использовать, это было бы здорово, но я не вижу его на данный момент.

...