我可以使用 UIBezierPath 对象绘制形状。现在我想识别使用它绘制的不同形状,例如。Rectangle 、 Square 、 Triangle 、 Circle 等。接下来我要做的是用户应该能够选择一个特定的形状,并且应该能够将整个形状移动到屏幕上的不同位置。实际要求更复杂,但如果我能做到这一点,那么我可以解决剩下的问题。
欢迎任何关于我如何开始的建议或链接或要点。我正在考虑编写一个单独的视图来处理每个形状,但不知道我该怎么做..
谢谢大家 !!
我可以使用 UIBezierPath 对象绘制形状。现在我想识别使用它绘制的不同形状,例如。Rectangle 、 Square 、 Triangle 、 Circle 等。接下来我要做的是用户应该能够选择一个特定的形状,并且应该能够将整个形状移动到屏幕上的不同位置。实际要求更复杂,但如果我能做到这一点,那么我可以解决剩下的问题。
欢迎任何关于我如何开始的建议或链接或要点。我正在考虑编写一个单独的视图来处理每个形状,但不知道我该怎么做..
谢谢大家 !!
我推荐 David Gelphman 的Programming with Quartz。
在他的“用路径绘图”一章中,他有一个关于“路径构造基元”的部分,它提供了一个十字路口:
如果您使用CGContextAddLineToPoint
您的用户可以制作由已知笛卡尔点定义的直线。您将使用基本数学来推断由这些点定义的几何形状。
如果您使用CGContextAddCurveToPoint
您的用户可以制作由已知点定义的曲线,并且我很确定这些线会穿过这些点,因此您仍然可以使用基本数学来确定至少形成的形状类型的近似值。
但如果你使用,这些点定义了绘制曲线之外CGContextAddQuadCurveToPoint
的框架。您需要更高级的数学来确定由沿切线的曲线形成的形状。
Gelphman 还讨论了“路径效用函数”,例如获取边界框并检查给定点是否在路径内。
至于移动完成的路径,我想你会使用CGContextTranslateCTM
.