识别使用 UIBezierPath 绘制的不同形状



我能够使用 UIBezierPath 对象绘制形状。现在我想识别使用这个绘制的不同形状,例如。矩形,正方形,三角形,圆形等。然后我想做的下一件事是用户应该能够选择特定的形状,并且应该能够将整个形状移动到屏幕上的不同位置。实际要求甚至更复杂,但如果我可以做这么多,那么我可以解决其余的问题。

欢迎任何关于我如何开始的建议或链接或观点。我正在考虑编写一个单独的视图来处理每个形状,但不知道如何做到这一点..

提前谢谢大家!!

我推荐David Gelphman的Programming with Quartz

在他的"用路径绘制"一章中,他有一个关于"路径构造原语"的部分,提供了一个十字路口:

如果使用CGContextAddLineToPoint则用户可以创建由已知笛卡尔点定义的直线。您将使用基本数学来推断由这些点定义的几何形状。

如果你使用CGContextAddCurveToPoint你的用户可以制作由已知点定义的曲线,我很确定这些线会穿过这些点,所以你仍然可以使用基本的数学来确定至少一个近似的形状类型形成的形状。

但是如果你使用 CGContextAddQuadCurveToPoint ,这些点定义了绘制曲线之外的框架。您需要更高级的数学来确定沿切线的曲线形成的形状。

Gelphman还讨论了"路径效用函数",例如获取边界框并检查给定点是否在路径内。

至于移动已完成的路径,我想你会使用CGContextTranslateCTM.

最新更新