对贝塞尔曲线绘制的曲线实施触摸方法

时间:2011-11-21 05:45:21

标签: objective-c cocoa-touch ipad bezier touches

如何在iPad上通过贝塞尔曲线绘制的曲线上实现触摸。

1 个答案:

答案 0 :(得分:0)

如果触摸在曲线内,您可以使用UIBezierPath的containsPoint:方法计算出来。然而,这仅在路径是闭合类型(例如圆形或矩形)时才有效。

我从未测试过的一件事是,如果一条路径被一条从起点到终点的不可见线隐式关闭。因为除了你的想象之外,当第四面不存在时,多边形的三个边可以检测到四边内的击中。

对于曲线为单笔画的情况(如绘画程序中),您必须人工展开笔画以检测您的触摸。实现此目的的一种方法是从每一端运行切线,并沿着曲线绘制相同形状的平行线,大多数矢量程序在您请求“展开线/笔划”时执行,然后您可以检测该展开笔划内的命中。扩展笔划的粗细度将决定触摸的准确程度。