問題タブ [catmull-rom-curve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1495 参照

java - Catmull Rom Spline 実装 (LibGDX)

画面全体にランダムなスプラインを生成したいと考えています。これが私がこれまでに持っているものです:

}

オブジェクトの使用方法について提供されているドキュメントについてかなり混乱していCatmullRomSplineます( https://github.com/libgdx/libgdx/wiki/Path-interface-&-Splines )

基本的にここでやろうとしているのは、画面の高さ全体に均等に分散された 10 個のランダム ポイントを生成し、画面の幅に沿ってランダムに配置して、ランダム化された曲線パスを作成することです。

したがって、コンストラクターの for ループ内で、スプラインの各制御点の x 値と y 値を生成していることがわかります。

これらのポイントをスプライン オブジェクトに入力して、画面にレンダリングするにはどうすればよいですか?

-ありがとう

更新 私の質問をもう少し具体的に言い換えさせてください..

で表されるコントロール ポイントがxPtsありyPts.ます。スプラインに沿ったポイントを取得したいのですが、これら 2 つのベクトルを使用してこれを行うにはどうすればよいですか? CatmullRomSpline のコンストラクターは、 2 つではVector2なく 1 つを取りfloat[]ます

0 投票する
0 に答える
622 参照

python - 求心性 Catmull-Rom スプラインを使用した特定の点の内挿

曲線を補間するために Catmull-Rom (CR) スプラインを調査してきましたが、これまでの結果と同様に、致命的な問題があります: 基本的に、「t」をマッピングできません (0<=t<=1 としますそれは...それを説明するより良い方法がないために... P1からP2までの「パラメータ化された」水平距離(ここではP0、P1、P2、P3)表記を使用して)を測定し、具体的な「x」値になる実際には、X、Y 座標空間でチャート化されます。もちろん、これは主に不均一な CR スプラインを使用する場合の問題です (その場合は xi=(ti-t0)+x0 であるため)。私は中心点 (アルファ = 0.5) CR スプラインの機能が特に気に入っていますが、今できる最善のことは、関数に点の負荷を返して曲線を描くように頼むことです。たとえば、「x = あるポイントの場合、曲線上のポイントを教えてください」とは言えません。

https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_splineは、私が持っているものの良い要約です (そこにある python コードも私のものに近いです)

0 投票する
0 に答える
38 参照

c# - オーバーラップせずに各ポイントの逆勾配で曲線を移動する

曲線から指定された距離だけ離れたところに曲線を描こうとしています。道路の脇は常に中央の黄色の線から一定の距離だけ離れているようなものです。これを行うコードがありますが、コードを使用すると、曲線の 1 つにオーバーラップが発生します。

これが私のコードです:

そして、これが結果の写真です: 重なりのある曲線

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

0 投票する
4 に答える
5094 参照

c# - Unity での加速

Unity で加速と減速をエミュレートしようとしています。

Unity でトラックを生成し、時間に基づいてトラック上の特定の場所にオブジェクトを配置するコードを作成しました。結果はこんな感じ。

Catmull-Rom スプラインの途中にある立方体

私が現在抱えている問題は、スプラインの各セクションの長さが異なり、立方体が各セクションを異なるが均一な速度で移動することです。これにより、セクション間の遷移時にキューブの速度の変化が突然ジャンプします。

この問題を解決するために、 Robert Penner のイージング方程式GetTime(Vector3 p0, Vector3 p1, float alpha)メソッドで使用しようとしました。ただし、これはある程度は役に立ちましたが、十分ではありませんでした。トランジションの間にまだ速度のジャンプがありました。

トラックのセグメント間で速度が大きくジャンプすることなく、キューブの位置を動的に緩和して、キューブが加速および減速しているように見せる方法について、誰かアイデアはありますか?


コードの簡単な実装を示すスクリプトを作成しました。任意のゲーム オブジェクトに取り付けることができます。コードの実行時に何が起こっているかを簡単に確認できるように、立方体や球体などに取り付けます。