0

私は現在SplineCurve3、Three.js に沿って特定の点の距離を見つけようとしています。例えば…</p>

ここに画像の説明を入力

上記SplineCurve3は、事前に定義された 4 つのポイントから構成されています。a、b、c、およびd。曲線に沿ったポイントを見つけるにはgetPoint、curve クラスのメソッドを使用して、曲線に沿って値 ( t) を指定します (0 – 開始 [a] – 1 – 終了 [d] の間)。

私が抱えている問題はt、曲線を作成するために使用された中間点 (b と c) の値を見つける必要があることです。

事実上、私は の逆をしたいgetPoint。パスに沿ってポイントを通過tし、最初から (距離) を取得したい。

これどうやってするの?私はそれを解決することはできません!

ありとあらゆる助けをいただければ幸いです。

4

2 に答える 2

1

私の記憶が正しければ、SplineCurve3は catmull-rom スプラインです。これは、a=0、b=1/3、c=2/3、d=3/3 の t 値を意味します。

ソースのようなこの一般化された式はt = (point number) / (number of points - 1) https://github.com/mrdoob/three.js/blob/dev/src/extras/curves/SplineCurve3.js#L19です

于 2013-05-20T15:01:34.363 に答える
0

これは get_point の逆ではありません (もちろん可能です) が、最後のポイントが長さを探しているポイントである SplineCurve3 を作成し、単純にその長さを取得することができます。次に、この新しい長さを元の長さと比較して、[0..1] 値を取得できます。この解決策で報われない場合は、ソース スプラインを確認できます。

于 2013-05-20T13:48:43.823 に答える