私が使用しているパスには曲線がありません。一連の接続されたポイント。
私が現在使用している方法では、パスの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、タートルグラフィックスなど)の基本です-それを逃れることはできません!