You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have seen many drawing sample projects but none of them supporting eraser feature. I think remove the points are easy but not for lines. Do you have any ideas? Thanks!
The text was updated successfully, but these errors were encountered:
You can try a collision detection algo like the one suggested here: https://www.youtube.com/watch?v=b2apMKU_CMA
Or do something based on a range. Here's an example: void eraseDrawingObject(PointerEvent details, DrawingOptions drawingOptions) { _points.retainWhere((item) { // We want to keep null when it's used to mark the end of the shape if (item == null) { return true; } int index = _points.indexOf(item); // Don't keep the offset if it's in the same position as the the pointer's final int drawingDx = item.points.dx.toInt(); final int drawingDy = item.points.dy.toInt(); final int pointerDx = details.localPosition.dx.toInt(); final int pointerDy = details.localPosition.dy.toInt(); final int eraseRange = drawingOptions.strokeWidth.toInt() + 5; for (int i = 0; i <= eraseRange; i++) { if ( // Use ranges on offset location so we can erase within a range (drawingDx+i == pointerDx+i && drawingDy+i == pointerDy+i) || (drawingDx-i == pointerDx-i && drawingDy-i == pointerDy-i) ) { lastRejectedPointIndex = index; return false; } } // If anything else, keep it return true; });
I have seen many drawing sample projects but none of them supporting eraser feature. I think remove the points are easy but not for lines. Do you have any ideas? Thanks!
The text was updated successfully, but these errors were encountered: