2012-03-11 22 views
2

ベジエ曲線のコントロールポイントが多くなるほど、与えられたコントロールポイントの近くではカーブが届きません。すっきりしたベジエ曲線

たとえば、2点(直線)曲線が両方の制御点に到達します。 3点(2次曲線)は3点の間に弧を描きますが、これは私には理想的です。直線に正確には追従していません。曲線ではないので、制御点とライン。

コントロールポイントがジグザグにある4ポイント(立方体)のカーブでは、結果の線ははるかに直線です。ジグザグで100個の制御点を使用するように拡張された曲線はほぼ完全に直線的です。

私が探している曲線を形成する1つの方法は、この場合、100個のコントロールポイントベジエ曲線よりも積極的に平滑化されたジグザグのように見えます形状を多くの小さな3点ベジエ曲線に分割し、両端でそれらを補間します。

この複雑なベジェ曲線関連タスクを実行するための単純な形式で、C#、擬似コード、またはさらに多くの情報がありますか?

+0

http://en.wikipedia.org/wiki/B%C3%A9zier_curve - ベジエ曲線がどのように構築されているかについてかなり良い説明があります。異なるカーブオーダーが適用されるセクションを参照してください。 – Mikant

+0

問題が私にとって何を示しているのかをよく見せてください。次の例は両方とも高いカーブオーダーを持ち、どちらの場合も非常に正確にラインが追跡されていません。カーブのコントロールポイントを時間のあまりにも長い時間接続することによって形成される直線から離れています。 wikipedia.org/wiki/File:Bezier_4_big.gif、http://en.wikipedia.org/wiki/File:BezierCurve.gif。これは、低次曲線の問題ではありません。http://en.wikipedia.org/wiki/File:Bezier_2_big.gifしかし、制御点が少なすぎる単純な曲線です。 – alan2here

答えて

6

実装が非常に簡単に何かが二次ベジエ円弧

enter image description here

あなたは基本的にソース頂点間の中点を使用を使用して曲線を構築することであるため、コントロールポイントとして各アークとソース頂点の開始/停止などアーク。この選択は、接線の連続性を保証し、カーブシェイプを多く制御します。

また、同じ座標の2つの連続した線源頂点を使用すると、鋭い角を簡単に得ることができます。

関連する問題