2011-06-29 60 views
1

我有一系列路徑,主要是直線,或者幾乎是直線。 我想將它們分爲水平,垂直,對角線,以及它們的繪製方向(上 - >下,下 - >上,左 - >右,右 - >左等)。一些線條是L形的,我也喜歡這些信息。獲取關於CGpath,UIBezierPath的信息?

這可能可以完成,如果我知道路徑的端點,但我不知道如何提取該信息。而且,由於端點將指示對角線,所以我需要比L形線更多的線。我查看了所有的參考頁面,並找不到那種信息。 所以,如果你知道,或另一種方式來獲取我正在尋找的信息...謝謝

回答

4

您可以訪問底層結構的唯一方法是使用CGPathApply方法。您傳遞一個C函數,該函數傳遞貝塞爾路徑中的每個元素(CGPathElement)。您應該能夠辨別出該方法中的線路類型。

使用CGPathApply時有一個good example。這不完全是你需要的,但看起來是一個很好的起點。

+0

好的,這看起來很有希望。 CGPathApply函數是否自動獲取對CGPathElement數據的訪問? –

+0

「CGPathApply」的一個參數是一個函數指針('CGPathApplierFunction')。這需要傳遞給'CGPathApply'函數的'info'和一個路徑元素。 'CGPathApply'函數爲貝塞爾路徑中的每個路徑元素調用此函數。 –

+0

好的,我建立了,謝謝!似乎在工作。我在調試器中看到元素類型和點。不錯。 –