通过几何 API,您可以创建交互式工具,例如选择机制和橡皮擦。
本节将介绍如何使用几何 API 来实现橡皮擦功能。
private fun eraseIntersectingStrokes(
currentX: Float,
currentY: Float,
currentStrokes: MutableList<Stroke>,
): Unit {
val prev = previousPoint
previousPoint = MutableVec(currentX, currentY)
if (prev == null) return
val segment = MutableSegment(prev, MutableVec(currentX, currentY))
val parallelogram = MutableParallelogram().populateFromSegmentAndPadding(
segment,
eraserPadding
)
currentStrokes.removeAll {
it.shape.intersects(parallelogram, AffineTransform.IDENTITY)
}
}