2012-04-27 36 views
2

我可以使用UIBezierPath對象繪製形狀。現在我想識別使用這個例如繪製的不同形狀。矩形,正方形,三角形,圓形等。接下來我想要做的事是用戶應該能夠選擇特定的形狀,並且應該能夠將整個形狀移動到屏幕上的不同位置。實際的要求更加複雜,但如果我能做到這一點,那麼我就可以解決其餘問題。確定使用UIBezierPath繪製的不同形狀?

任何建議或鏈接或點我如何開始這是值得歡迎的。我想寫一個單獨的視圖來處理每一個形狀,但沒有得到如何做到這一點..

謝謝大家提前!

+0

我也在尋找相同的解決方案。如果您發現它,請發佈您的解決方案。 – 2017-05-17 10:19:02

+0

你能夠識別形狀嗎? – RMRAHUL 2018-02-27 10:54:06

回答

0

我推薦David Gelphman的用Quartz編程

在他的一章「與路繪圖」,他對「道路建設基本體」,它提供了一個十字路口段:如果您使用CGContextAddLineToPoint您的用戶可以使用已知的笛卡爾點定義的直線

。你可以用基本數學推導出這些點所定義的幾何形狀。

如果使用CGContextAddCurveToPoint您的用戶可以使彎曲線由已知點定義,我敢肯定,這些線路將通過點運行,所以你仍然可以使用基本的數學確定至少一個近似形成的形狀的類型。

但是,如果您使用CGContextAddQuadCurveToPoint,這些點定義了繪製曲線以外的框架。您需要更高級的數學來確定由切線形成的曲線。

Gelphman還討論了「路徑效用函數」,比如獲取邊界框並檢查給定點是否在路徑中。

至於移動完成的路徑,我認爲你會使用CGContextTranslateCTM