Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is it possible to implement eraser to your project #5

Open
AnsonWooBizCloud opened this issue Jan 3, 2020 · 1 comment
Open

Is it possible to implement eraser to your project #5

AnsonWooBizCloud opened this issue Jan 3, 2020 · 1 comment

Comments

@AnsonWooBizCloud
Copy link

AnsonWooBizCloud commented Jan 3, 2020

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!

@andrepo
Copy link

andrepo commented Jan 27, 2020

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; });

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants