获取NSBezierPath长度的最佳方法是什么?

时间:2012-10-04 20:31:52

标签: objective-c geometry nsbezierpath

我使用的路径没有曲线;只是一系列连接点。

我目前使用的方法是迭代遍历路径的NZBezierPathElement组件并获取每个点,但这很笨拙 - 特别是因为我必须保存最后一个点以获得每个新距离。如果你们中的任何一个人知道更好的方法,那将非常感激。

1 个答案:

答案 0 :(得分: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,海龟图形等)的基本概率及其相对命令(例如移动相对,线相对) - 没有逃避它!