获取关于CGpath,UIBezierPath的信息?

问题描述:

我有一系列路径,主要是直线,或者几乎是直线。 我想将它们分为水平,垂直,对角线,以及它们的绘制方向(上 - >下,下 - >上,左 - >右,右 - >左等)。一些线条是L形的,我也喜欢这些信息。获取关于CGpath,UIBezierPath的信息?

这可能可以完成,如果我知道路径的端点,但我不知道如何提取该信息。而且,由于端点将指示对角线,所以我需要比L形线更多的线。我查看了所有的参考页面,并找不到那种信息。 所以,如果你知道,或另一种方式来获取我正在寻找的信息...谢谢

您可以访问底层结构的唯一方法是使用CGPathApply方法。您传递一个C函数,该函数传递贝塞尔路径中的每个元素(CGPathElement)。您应该能够辨别出该方法中的线路类型。

使用CGPathApply时有一个good example。这不完全是你需要的,但看起来是一个很好的起点。

+0

好的,这看起来很有希望。 CGPathApply函数是否自动获取对CGPathElement数据的访问? –

+0

“CGPathApply”的一个参数是一个函数指针('CGPathApplierFunction')。这需要传递给'CGPathApply'函数的'info'和一个路径元素。 'CGPathApply'函数为贝塞尔路径中的每个路径元素调用此函数。 –

+0

好的,我建立了,谢谢!似乎在工作。我在调试器中看到元素类型和点。不错。 –