我使用的路径没有曲线;只是一系列连接点。
我目前使用的方法涉及遍历路径的 NZBezierPathElement 组件并获取每个点,但这很笨拙 - 特别是因为我必须保存最后一个点才能获得每个新距离。如果你们中的任何人知道更好的方法,那将不胜感激。
我使用的路径没有曲线;只是一系列连接点。
我目前使用的方法涉及遍历路径的 NZBezierPathElement 组件并获取每个点,但这很笨拙 - 特别是因为我必须保存最后一个点才能获得每个新距离。如果你们中的任何人知道更好的方法,那将不胜感激。
您的算法听起来完全正确-路径的长度是每对点之间的长度之和。很难理解为什么你认为这是“笨拙”的,所以这里是伪代码中的算法,以防万一:
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、海龟图形等)及其相对命令(例如相对移动、相对线)的基础 - 没有逃避它!