2012-10-04 51 views
1

我使用的路徑沒有曲線;只是一系列連接點。獲得NSBezierPath長度的最佳方法是什麼?

我目前使用的方法涉及遍歷路徑中的NZBezierPathElement組件並獲取每個點,但這很笨拙 - 尤其是因爲我必須保存最後一個點以獲取每個新距離。如果您有任何人知道更好的方法,那將非常感激。

+0

與計算到下一個點的距離相比,保存最後一點很容易 - 尤其是在使用曲線的情況下。 – Eiko

+0

是的,但我沒有使用曲線。 – chm

回答

1

你的算法聽起來是正確的 - 路徑的長度是每對點之間長度的總和。很難明白爲什麼你認爲這是「笨拙」,所以這裏是僞代碼算法,以防萬一:

startPoint <- point[1] 
length <- 0 
repeat with n <- 2 to number of points 
    nextPoint <- point[n] 
    length <- length + distanceBetween(startPoint, nextPoint) 
    startPoint <- nextPoint // hardly clumsy 
end repeat 

也許你正在做不同呢?

當前點的概念對於NSBezierPath(以及SVG,烏龜圖形等)及其相關命令(例如相對移動,線相對)至關重要 - 不會逃避它!

+0

非常讓人放心,謝謝!我只是認爲可能有一些內置的支持,我錯過了。你的僞代碼正是我一直在做的。 – chm

相關問題