2017-02-25 7 views
2

カーブのベジェコントロールの計算に関する質問があります。問題は、次の画像が表示されるよう:損失の近似を持つ計算された点からベジェ制御点を決定する方法は?

Problem bezier curve

私はFおよびEは問題ではないすべての点がなければならないことである見つける必要があるCとDを含む、順序付けられたリストに赤のポイントを持っています(曲線は開始点と終了点を除き、どの点を通過する必要はありません)。それはちょうど「近似」でなければなりません。私はすでに次の記事まし

ではありませんので、解決方法についての私の考えこれは次の通りであった:

  1. は、リスト内の前と次のポイントを見て、C及びD
  2. 点の数が偶数の場合を通る線から最も遠い点を計算一つは遠くからであるかを決定します想像線を計算し、それらの中間点を計算する
  3. 3点で曲線の形状を得るには不十分ですが、25%と75%の値が必要です。幸いなことに、これを決定するいくつかの方法があります:均一間隔の方法、弧の長さと中心のメソッド。
  4. 私のカーブを説明するのに5ポイント(開始、25%、中間、75%、終了)があります。私はそれぞれのt値を知っています。曲線は次のようになります。このことから

maybe solution

、私はどのように...何とかベジェ式にポイントを挿入し、逆計算コントロールポイントをする必要がありますか?

ありがとうございました。

答えて

2

"Creating a curve from three points"セクションの「A Primer onBézierCurves」でこれを行う方法を書いていますが、サポート理論とコードについて説明しているので、おそらく前の2つのセクションも読む必要があります。

重要な情報は、for any given t, there is a fixed point on the line {start,end} that connects to your on-curve point Bezier(t)という事実です。たとえば、次の画像では、ポイントCは、で、常にで、開始と終了と同じ距離の比率です。コントロールポイントを配置した場所に基づいて、カーブがどのように見えるかは関係ありません。t=0.5の場合、Cは常に開始と終了の中間にあります。さらに、{C、Bezier(t)}と{Bezier(t)、A}の長さの比率は固定されていますので、最初のことを知っていればすぐにAの位置を知ることができます必要なすべての情報それと

enter image description here

、あなただけの自由パラメータがtにおける接線であること、またはより正確には、左と右の補間距離で、好きしかし、あなたがカーブを再構築することができます。 3点を超えることなく、それはかなり推測された価値であり、いくつかの「審美的に喜ばしい」オプションがありますが、それらのどれもあなたのケースには適用されません:あなたは選択されたt値の周りにポイントの束を持っており、あなたの選択したt値の周りの点に基づいて、それを使って3次ベジェを再構築するだけです。 tでネイティブの支柱で

enter image description here

しかし、あなたのデータを与え、あなたはより良いフィット感を得ることができます。

0

最小二乗近似が最も簡単です。 B(t)はベジエの方程式である場合、P iは T、近似するポイントである対応するパラメータの値であり、あなたは= ∑ LSQ私 || B(T 私はを最小限にしたいです)-P i || = ∑ I((B X(T I)-P XI) +((B Y(T I)-P YI2 。あなたは4次方程式を得るよう)あなたは4つの変数で、変数としてFとEの座標を取ることができます:∂/∂ F X(LSQ)= 0、∂を/ ∂ F Y(LSQ)= 0、∂/∂ E X(LSQ)= 0、∂/∂ E Y(LSQ)= 0。標準的な方法で解決できます。 - P I-1 || /総合計= || DP N T I = || P I:対応するパラメータ値を検索するには、良好な結果を与える弦長の近似を使用することができ || + ∑ || P i -P i-1 || (P = Cとする)。最適な近似が必要な場合は、反復アルゴリズムを使用してパラメータを絞り込むことができます。

関連する問題