ios - 检测绘制路径是否为 xcode 中的圆形/矩形

标签 ios xcode detection shapes uibezierpath

我想为绘图应用程序实现自动完成功能。绘制徒手对象后,我想检测对象的类型(圆形/矩形/三角形),并根据结果绘制相应的对象。

我已经阅读了一些关于 OpenCV 的内容,但我需要将用户绘图实时转换为图像。我正在记录触摸绘制/跟踪的点数,并生成相应路径的 UIBeizerPath。我该如何去检测形状类型?

最佳答案

您需要先对数据点进行分割。谷歌“笔划分割”可以找到相关文章。一种简单快速的算法是计算每个数据点的前向斜率和后向斜率,然后计算前向斜率和后向斜率之间的转角。如果转角大于某个角度阈值,那么您可以假设您的路径在那里急转弯。根据计算出的急转弯数量,您可以推断这些点代表的是三角形(有 2 个急转弯)、四边形(有 3 个急转弯)还是其他东西。要推断数据点代表圆形或矩形,您需要进行额外的计算。例如,如果根本没有急转弯,则对数据点进行圆拟合,看拟合圆的最大误差是否小于某个公差。要输出矩形,您必须将直线拟合到每个数据点段,并检查拟合线是否或多或少彼此正交。

关于ios - 检测绘制路径是否为 xcode 中的圆形/矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622358/

相关文章:

ios - Controller 中的 Braintree ios sdk 下降不继续付款

JavaScript:检测 iframe 内的链接点击

ios - 如何限制我的应用程序仅适用于 iPhone 6 和 6 Plus?

ios - 在 iPhone 中解码 h264 视频

objective-c - iOS 中用户定义函数的快速帮助

C++游戏导弹碰撞检测

vim - 文件类型更改时颜色方案更改

ios - ionic 应用程序被应用程序商店拒绝

ios - NSRegularExpression 和重复模式

objective-c - 将 xcode 更新到 4.5 后存档应用程序时出错