2012-10-04 50 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

相关问题