0

私は、画像の編集とアニメーション化を含む C# のプログラムに取り組んできました。

ユーザーが曲線を描くことができるインターフェイスが必要であることがわかりました。

Photoshop と Powerpoint が使用するシステムは非常に直感的であると判断しました。

この曲線システムがベジェ曲線と呼ばれていることや、ポイントがどのように定義されているかなど、この曲線システムについて多くのことがわかりました。

ただし、点がどのように曲線を定義するかについてはすべて説明していましたが、Powerpoint と Photoshop が使用する定義システム (接線に似た 2 つの線分) については説明していませんでした。

直感的には、曲線を定義するポイントを計算するために何らかの形でこれらのセグメントが使用されていると思いますが、その方法についてはまったく知りません。

つまり、ユーザーが Photoshop や Powerpoint と同様の方法でベジエ曲線を描画できるようにしようとしています。これらのセグメントの長さと方向である「接線」を定義する特定の点に終点を持つ 2 つの線分を使用します。どちらもカーブに影響します。

4

1 に答える 1

0
this.CreateGraphics().DrawBezier(Pens.Black, 0, 0, 20, 80, 80, 20, 100, 100);

thisこの場合はフォームであり、OnPaint イベントのオーバーライドでそれを呼び出しました。

画像にベジエを描画して表示することもできます。

var bitmap = new Bitmap(100, 100);

Graphics.FromImage(bitmap).DrawBezier(Pens.Black, 0, 0, 20, 80, 80, 20, 100, 100);

this._pictureBox.Image = bitmap;

私の例の結果は次のとおりです。

例

于 2012-05-21T23:32:14.300 に答える