3

3次元空間にN点あります。線を使って結合する必要があります。しかし、単純な線を使ってそれを行うと、滑らかではなく、見苦しく見えます。

私の現在のアプローチは、ベジェ曲線を使用し、4ポイントにDeCasteljauアルゴリズムを使用し、データセット内の4ポイントの各グループに対してそれを実行することです。ただし、これに伴う問題は、ポイント1〜4、5〜8、9〜12などで個別に実行するため、4〜5、8〜9などの間で線が滑らかにならないことです。

他のアプローチも探しました。具体的には、Catmull-Romスプラインに関するこの記事を見つけました。これは、ベジェ曲線とは異なり、曲線がすべての制御点を通過するため、私の目的にさらに適しているようです。それで私はほとんどそれを実装し始めました、しかしそれから、私はその式がうまくいくのをそのサイトで見ました"assuming uniform spacing of control points"。それは私の問題には当てはまりません。

だから、私の質問は、どのアプローチを使用する必要があるかということです-ベジェ、キャットマルロム、または完全に異なるもの?ベジェの場合、4-5、8-9などの間の滑らかさを修正する方法は?Catmull-Romの場合、ポイントが等間隔に配置されていないと数式が機能しないのはなぜですか。代わりに何が必要ですか。

編集: Catmull-Romスプラインが必要だと確信しています。これは、アプリケーションにとって有利なすべてのコントロールポイントを通過するためです。したがって、私が答えたい主な質問は、私が提供したリンクの式が不均一な間隔のコントロールポイントで機能しないのはなぜですか?

ありがとう。

4

3 に答える 3

2

いくつかの解決策:

  • Bスプラインを使用します。これはベジェ曲線の一般化です(ベジェ曲線内部ノットポイントのないBスプラインです)。

  • 3次スプラインを使用します。キュービックスプラインは特に計算が簡単です。3次スプラインは、制御点全体でゼロ、1次、および2次導関数で連続しています。三階導関数である3次導関数は、制御点で不連続性がありますが、これらの不連続性を確認するのは非常に困難です。

Bスプラインと3次スプラインの主な違いの1つは、3次スプラインがすべての制御点を通過するのに対し、Bスプラインは通過しないことです。それについて考える1つの方法:これらの内部コントロールポイントは、Bスプラインの単なる提案ですが、3次スプラインには必須です。

于 2011-06-28T16:57:33.387 に答える
0

意味のある線(評価するのが最も簡単ではありませんが)は、ガウス過程を介して見つけることができます。線を変化させる長さスケール(つまり、線の滑らかさ)を設定(または推測)すると、長さスケールが与えられたデータで最も可能性の高い線がGP線になります。線がデータポイントを通過しないことを気にしない場合は、モデルにノイズを追加できます。

ラインの標準偏差も取得できるため、この優れた内挿法です。空き地に多くのデータがない場合、線はより不確実になります。

それらについては、David MacKayの第45章で読むことができます。Information Theory, Inference, and Learning Algorithmsこれは、著者のWebサイトからダウンロードできます

于 2011-06-28T15:39:15.223 に答える
0

1つの解決策は、ウィキペディアの次のページです。http: //en.wikipedia.org/wiki /Bézier_curve、N個のコントロールポイントの一般化されたアプローチを確認してください。

于 2011-06-28T16:35:43.587 に答える