تتيح لك واجهات برمجة تطبيقات Geometry إنشاء أدوات تفاعلية، مثل ممحاة و آليات اختيار.
لتوضيح التطبيق العملي لواجهات برمجة التطبيقات Geometry API، اطّلِع على المثال التالي لتطبيق أداة المحو.
ممحاة الكتابة بخط كامل
fun eraseWholeStrokes(
eraserBox: ImmutableBox,
finishedStrokesState: MutableState<Set<Stroke>>,
) {
val threshold = 0.1f
val strokesToErase = finishedStrokesState.value.filter { stroke ->
stroke.shape.computeCoverageIsGreaterThan(
box = eraserBox,
coverageThreshold = threshold,
)
}
if (strokesToErase.isNotEmpty()) {
Snapshot.withMutableSnapshot {
finishedStrokesState.value -= strokesToErase
}
}
}
بالنسبة إلى تنفيذ Compose، تأكَّد من تشغيل عملية إعادة الإنشاء، بحيث
تتم إزالة ضغطات المفاتيح بشكل فعال. على سبيل المثال، يمكن استخدام
rememberCoroutineScope
في العنصر القابل للتجميع ونقل نطاق coroutine إلى معالج
اللمس، ما يتيح لك تعديل finishedStrokesState
ضمن نطاق
Compose.