Использование ластика поверх изображения во Flutter

Я делаю своего рода приложение для рисования, в котором вы рисуете поверх фонового изображения. Есть пара инструментов, например ручка, а также ластик. В идеале мы бы просто закрасили фон, но это изображение. У нас была идея удалить точки, которые были под нашим пальцем, когда мы перемещались по экрану, но смещения и локальное положение не совпадали (они были примерно на 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(() {});
              },

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

0 ответов

Другие вопросы по тегам