2017-11-08 18 views
0

私は、オーディオのウェーブデータを表現するベジェ曲線を使っています。次に、x座標で波をサンプリングし、y座標を取得してPCMデータに変換できるようにします。ベジェ曲線はパラメトリック方程式で表現されているので、これは複数のy値とx値が存在する可能性があるため問題になる可能性がありますが、サンプリングする曲線では関数の基準を満たしていることを保証できます。計量的に。だから私の質問は、直接x値に基づいてyの値をサンプリングする方法はありますか?これを行う最善の方法は何ではないでしょうか?今私の最高のアイデアは、私が望むx値に到達してからそのy値を使うまでカーブに沿って移動しますが、これは遅く非効率的です。ありがとうございました。x値に基づいて3次ベジェ曲線のy値を得ることは可能ですか?

+0

ベジェ曲線の方程式の詳細がわからないのですが、xのtのパラメトリック方程式をxの式で解いて、その値をyの式に代入するといいでしょう。私の大きな疑問は、なぜベジェ曲線を使ってオーディオをモデリングするのかということです。あなたは何を達成しようとしていますか、フーリエ変換とオーディオのスペクトル特性について知っていますか? – Linuxios

答えて

1

はい、可能ですが多少複雑です。与えられたxでtについて解き、tからyを計算する必要があります。これはnewton-raphson法で近似することができます。このリンクは、それを実装する方法をよりよく説明します:http://greweb.me/2012/02/bezier-curve-based-easing-functions-from-concept-to-implementation/

別のオプションは、パラメトリックベジェ曲線ではなく、明示ベジェ曲線を使用することです。明示的には、yはxの関数である(すなわち、y = f(x))。 xおよびyの両方がtの関数である(すなわち、x = f(t)およびy = f(t))パラメトリック方程式とは対照的に、コントロールポイントのx値が均等に配置されている限り、曲線は明示的で、x = tと仮定できます。

EDIT:等間隔のx座標の文は、x = tが過度に単純化されていることを示しています。 x座標が0と1の間に均等に配置されていれば、それは真実です。それ以外の場合は、x座標を0と1の間の値に変換する必要があります。例えば、x座標が等間隔で3,4,5、 6ならば、t =(x-3)/(6 - 3)となる。

関連する問題