2

我可以使用 UIBezierPath 对象绘制形状。现在我想识别使用它绘制的不同形状,例如。Rectangle 、 Square 、 Triangle 、 Circle 等。接下来我要做的是用户应该能够选择一个特定的形状,并且应该能够将整个形状移动到屏幕上的不同位置。实际要求更复杂,但如果我能做到这一点,那么我可以解决剩下的问题。

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

谢谢大家 !!

4

1 回答 1

0

我推荐 David Gelphman 的Programming with Quartz

在他的“用路径绘图”一章中,他有一个关于“路径构造基元”的部分,它提供了一个十字路口:

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

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

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

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

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

于 2012-04-27T13:10:31.990 回答