【问题标题】:Identify different shapes drawn using UIBezierPath?识别使用 UIBezierPath 绘制的不同形状?
【发布时间】:2012-05-08 00:48:26
【问题描述】:

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

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

提前谢谢大家!!

【问题讨论】:

  • 我也在寻找相同的解决方案。如果你找到它,请发布你的解决方案。
  • 你能识别形状吗?

标签: iphone objective-c ios xcode ios4


【解决方案1】:

我推荐 David Gelphman 的 Programming with Quartz

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多