1

2次元デカルト座標系のX座標とY座標でそれぞれ定義された、いくつかの点があるとします。すべてのポイントのX座標は、前のポイントのX座標よりも大きいため、ループは発生しません。

これらの点を通る滑らかな線を描くにはどうすればよいですか?結果は正弦波のように見えますが、振幅と波長が異なります。線やスプラインのライブラリ関数を使用せずに、補間された点のY座標を計算できる限り、単純化または近似されていれば、まったく問題ありません。言語は関係ありません。実装ではなく、アルゴリズムに興味があります。完全に開示するために、JavaScriptで実装する予定です。

ベジェスプラインやコントロールポイントのあるもののような複雑な数学には近づかないようにしたいと思います。ポイントまでの距離などでうまくいく簡単な解決策があるに違いないと思います。

どんなアイデアでも大歓迎です。

4

2 に答える 2

0

補間多項式が必要なようです。合わせる方法はいくらでもあります。これを読んでみてください

http://en.wikipedia.org/wiki/Polynomial_interpolation#Constructing_the_interpolation_polynomial

多数のポイントがある場合は、代わりに近似値を使用することを検討してください。そうしないと、オーバーフィッティングやポイント間のデータの表現が不十分になる可能性があります。その場合、最小二乗多項式近似を使用できます。必要な精度の程度によって異なります。

http://en.wikipedia.org/wiki/Least_squares#Linear_least_squares

特に、データが正弦波の場合、x の通常の累乗ではなく、三角基底関数 (さまざまな整数周波数の正弦関数または余弦関数) を使用して実際にデータを近似できます。

または、制御点を含まない非パラメトリックな方法でスプラインを使用して補間することもできます

http://en.wikipedia.org/wiki/Spline_interpolation

スプラインを使用すると、基本的な高次多項式補間を使用して得られる可能性のある野生の振動を防ぐことができます。

すべての近似問題と同様に、データ (およびその量) を見ずに決定的な答えを出すことは困難です。最終的には、多数のデータがある場合、基本的な多項式補間は友達ではありません。補間するポイントが 1000 個ある場合は、999 度の多項式が必要です。

于 2012-07-15T16:01:11.767 に答える