Objective c 对bezier曲线绘制的曲线实现接触法

Objective c 对bezier曲线绘制的曲线实现接触法,objective-c,cocoa-touch,ipad,bezier,touches,Objective C,Cocoa Touch,Ipad,Bezier,Touches,如何在iPad中的bezier曲线绘制的曲线上实现触摸。您可以使用UIBezierPath的containsPoint:method来确定触摸是否在曲线内。但是,这仅在路径为闭合类型(例如圆形或矩形)时有效 我从未测试过的一件事是,路径是否由一条从起点到终点的不可见线隐式闭合。正如多边形的3条边一样,当第4条边不存在时,除了在你的想象中,你可以在4条边内检测到命中 对于绘制程序中的曲线为单笔划的情况,您必须人工扩展笔划以检测触摸。实现这一点的一种方法是从每一端运行切线,并沿曲线绘制一条形状相同的

如何在iPad中的bezier曲线绘制的曲线上实现触摸。

您可以使用UIBezierPath的containsPoint:method来确定触摸是否在曲线内。但是,这仅在路径为闭合类型(例如圆形或矩形)时有效

我从未测试过的一件事是,路径是否由一条从起点到终点的不可见线隐式闭合。正如多边形的3条边一样,当第4条边不存在时,除了在你的想象中,你可以在4条边内检测到命中


对于绘制程序中的曲线为单笔划的情况,您必须人工扩展笔划以检测触摸。实现这一点的一种方法是从每一端运行切线,并沿曲线绘制一条形状相同的平行线。大多数向量程序在请求展开线/笔划时都会这样做,然后可以在该展开笔划内检测到命中。扩展笔划的肥胖程度将决定触摸的准确性。

您希望检测触摸是否落在贝塞尔曲线上?