問題タブ [splines]

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 投票する
0 に答える
74 参照

matlab - 可変量のポイント間のスプラインの構築のデバッグ

xとyの点の数が与えられた場合、すべての点と交差し、交差点で同じ勾配を持つスプラインを作成したいと思います。

私のアプローチは、点の交点の方程式のセットを確立し、交点で等しい勾配を指示してから、fsolve()を使用して係数を決定することでした。

ただし、見つかったスプラインをプロットする場合、xとyで指定された正しい点と交差しますが、交差する点で同じ勾配はありません。

私はこのスクリプトを2日間ほとんどデバッグしようとしてきましたが、運がありませんでした。スプラインが正しい勾配を取得していない理由を誰かが指摘できますか?または、満足のいく解が見つかる前にfsolve()が終了する可能性がありますか?

メインファイル:

eqns.m

eqn.m

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

matlab - スプライン導関数

次のように、スプライン ツールボックスを使用して双 3 次スプラインを作成しています。

http://www.mathworks.com/help/toolbox/curvefit/differentiate.htmlを使用して x 方向または y 方向に関して微分できることはわかっていますが、次の値に関して微分したいと考えています。ノット (すなわち Z)。

これは存在しますか、それとも自分で作成する必要がありますか?

0 投票する
1 に答える
1085 参照

delphi - Delphi用のNURBSライブラリ

Delphiで使用可能なスプラインを操作するためのライブラリをお勧めしますか?私はいくつかの検索を行いましたが、私が見つけたのはC / C ++/Pythonバインディングだけでした。必要な機能は次のとおりです。2Dでスプラインを操作する:回転、平行移動、ミラーリング、スケーリング、さらに交差、ノットの挿入、スプラインとポリラインの補間。

編集:

GLScene、3Dサーフェスではなく、2Dスプラインのみをサポートする必要があるため、私が探しているものではありません。また、ライブラリをレンダリングエンジンに固定したくありません。特定の計算を実行したいのですが、GLSceneが私のニーズに合いません。

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

python - 3D座標を補間する方法

x、y、z形式のデータポイントがあります。それらは閉多様体の点群を形成します。R-ProjectまたはPythonを使用してそれらを補間するにはどうすればよいですか?(多項式スプラインのように)

0 投票する
1 に答える
1054 参照

java - 点だけで作ったランダム曲線

次のようなランダムな曲線を作成する必要があります。

ランダムな曲線

この図には、次のようにマークされた 3 つの例があります。

  1. 赤い楕円は曲線の始点で、
  2. 青い楕円は終わりを示しています。
  3. それらの間には、緑色の楕円でマークされたポイントがあります。

これらのいずれかを作成した後、前の曲線の各ポイントに対して別の小さな曲線を作成する必要があるため、ポイントのみを使用できます。sin 関数や cos 関数で試してみましたが、始点と終点の両方で x 点または y 点が同じ場合にのみ機能します。

Graphics2D と Point を使用してこれを実現する方法を知っている人はいますか?

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

c++ - C++ を使用して正規化された行列の任意の 3 点を通る曲線を計算する

x 軸に 0 から 1 の間、y 軸に 0 から 1 の間の正規化された値を持つ単純な 2D 行列があり、この行列に 3 つの点があるとします。たとえば、P1 (x=0.2,y=0.9)、P2 (x=0.5,y=0.1) と P3 (x=0.9,y=0.4)。

このポイントを通る曲線を簡単に計算するにはどうすればよいですか。つまり、任意の x の y を与える関数を持つことを意味します。

3 点を通る曲線はいくつでも可能です。しかし、私の言いたいことはわかります。オーディオ サンプルの補間に使用でき、ボリューム フェード カーブの計算に使用でき、ゲームでのモンスターの歩行経路の計算に使用できる滑らかな曲線が必要です。

今、私はこの質問を約3日間ネットで検索しましたが、このタスクに使用できる解決策がないとは信じられません. Catmull-rom-Splines、ベジエ曲線、およびそのすべての理論的なものを扱っているすべてのテキストには、少なくとも 1 つのポイントがあり、それが私にとっては使用できないものになっています。たとえば、Catmull-Rom-splines では、コントロール ポイント間に一定の距離が必要です (このコードを使用して、4. ポイント y を 3. ポイント y に設定します)。

しかし、x1 から x4 が y の計算に影響を与えているとは思えないので、x1 から x4 までの距離は同じでなければならないと思いますか?

...

または、ベジエコードはポイントを通る曲線を計算しません。ポイント (少なくとも 2. ポイント) は、線に力の効果しかないように見えます。

これは何もないよりはましですが、1. 非常に遅く (再帰的)、2. 前述のように 2. ポイントを通る線を実際には計算しません。

私を助けることができる数学的頭脳は外にありますか?

0 投票する
1 に答える
3816 参照

function - Matlab-スプラインのインジケーター関数

さて、私はばかげた問題に遭遇しました、そして私自身の仕事とインターネット検索の両方は本当に解決策を提供しませんでした、それで私は誰かが何か提案があるかどうか尋ねて見たかったです。私は最終的に金利曲線を描くことを目的としたMatlabプログラムを作成しています。これは、3次Bスプラインを使用し、次にオプティマイザーを使用して3次Bスプラインベースの係数を取得し、この情報を使用してグラフ化することで実行されます。グラフをプロットしようとすると、トリッキーな小さな問題が発生しました。以下にエラーメッセージと関連するコードを示しますが、つまり、何が起こっているのかは次のとおりです。

特定の次数のBスプラインをプログラムするには、インジケーター関数から始めて、再帰的に作成します。このインジケーターは、いくつかの入力変数に関するものです(私にとってはその時ですが、変数が実際に何であるかは特に関係ありません)。後でこの変数に関してt=(0:1:30)のような範囲を使用してグラフに移動すると、オペランドが||であるというエラーが表示されます。&&演算子は、論理スカラー値に変換可能である必要があります。

私はインターネット検索を行ったところ、&&はベクトル入力ではうまく機能しないことがわかり(グラフ化を試みているときにこれを渡すことになると理解しています)、代わりに&を使用することを提案しました。私はそれを試しましたが、代わりに、一致しない行列の次元があるというエラーを受け取りました。これは、そもそも行列が関係する方法がないため、私には意味がありませんでした。したがって、現時点では、この問題を解決するための良い方法が何であるかはわかりません。プロットを可能にするMATLABのインジケーター関数をプログラミングするベクトルの堅牢な方法はありますか?

関連するコードは次のとおりです。

関数スプラインはここに書かれています:

&&を使用しているときに受け取ったエラーメッセージは次のとおりです。

||へのオペランド &&演算子は、論理スカラー値に変換可能である必要があります。

スプラインのエラー(9行目)if(t> knots(k + 4)&& t

スプラインのエラー(15行目)スプライン=((t-ノット(k + 4))/(ノット(k + 4 + n)-ノット(k + 4)))*スプライン(n-1、k、t) +((knots(k + 5 + n)-t)/(knots(k + 5 + n)-knots(k + 5)))*スプライン(n-1、k + 1、t);

スプラインのエラー(15行目)スプライン=((t-ノット(k + 4))/(ノット(k + 4 + n)-ノット(k + 4)))*スプライン(n-1、k、t) +((knots(k + 5 + n)-t)/(knots(k + 5 + n)-knots(k + 5)))*スプライン(n-1、k + 1、t);

スプラインのエラー(15行目)スプライン=((t-ノット(k + 4))/(ノット(k + 4 + n)-ノット(k + 4)))*スプライン(n-1、k、t) +((knots(k + 5 + n)-t)/(knots(k + 5 + n)-knots(k + 5)))*スプライン(n-1、k + 1、t);

InterestRatesHW1のエラー(88行目)f0 = f0 + x(k + 4,1)。*スプライン(3、k、t);

&だけを使用したときに発生するエラーは次のとおりです。

使用エラー*内部行列の次元は一致する必要があります。

スプラインのエラー(15行目)スプライン=((t-ノット(k + 4))/(ノット(k + 4 + n)-ノット(k + 4)))*スプライン(n-1、k、t) +((knots(k + 5 + n)-t)/(knots(k + 5 + n)-knots(k + 5)))*スプライン(n-1、k + 1、t);

スプラインのエラー(15行目)スプライン=((t-ノット(k + 4))/(ノット(k + 4 + n)-ノット(k + 4)))*スプライン(n-1、k、t) +((knots(k + 5 + n)-t)/(knots(k + 5 + n)-knots(k + 5)))*スプライン(n-1、k + 1、t);

InterestRatesHW1のエラー(88行目)f0 = f0 + x(k + 4,1)。*スプライン(3、k、t);

基本的な質問とは何でしょうか。申し訳ありませんが、これは非常に苛立たしいことですので、どんな助けでも大歓迎です。

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

rotation - キネティック JS ラインから変換されたポイントを取得できません

次のように、Kinetic JS を使用して正常に線を引くことができました。

次に、次のコマンドを使用して線を回転させます。

ビジュアル表示が更新されます。次に、次のように、回転した線から変換されたポイントを取得しようとします。

入力したときと同じポイントの配列を取得することになります。回転したポイントの絶対座標を導出できるかどうかを確認するために、オフセットと変換を取得しようとしましたが、うまくいきませんでした。実際の翻訳された値を抽出するのを手伝ってくれる人はいますか?