2012-04-27 90 views
2

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

任何建议或链接或点我如何开始这是值得欢迎的。我想写一个单独的视图来处理每一个形状,但没有得到如何做到这一点..

谢谢大家提前!

+0

我也在寻找相同的解决方案。如果您发现它,请发布您的解决方案。 – 2017-05-17 10:19:02

+0

你能够识别形状吗? – RMRAHUL 2018-02-27 10:54:06

回答

0

我推荐David Gelphman的用Quartz编程

在他的一章“与路绘图”,他对“道路建设基本体”,它提供了一个十字路口段:如果您使用CGContextAddLineToPoint您的用户可以使用已知的笛卡尔点定义的直线

。你可以用基本数学推导出这些点所定义的几何形状。

如果使用CGContextAddCurveToPoint您的用户可以使弯曲线由已知点定义,我敢肯定,这些线路将通过点运行,所以你仍然可以使用基本的数学确定至少一个近似形成的形状的类型。

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

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

至于移动完成的路径,我认为你会使用CGContextTranslateCTM