幾何圖形 API

Geometry API 可讓您建立選取機制和橡皮擦等互動式工具。

本節說明如何使用 Geometry 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)
    }
}