2010-12-10 13 views
1

私はC#の初心者ですので、やさしくしてください。C#マウスイベントでカーブとポリゴンを描画する

C#では、ペイントのような曲線やポリゴンを描画したいと思います。ここでマウスの左ボタンを押して描画します。あなたはそれを行う方法に関するいくつかのアドバイスやコードを与えることができますか?

ありがとうございます。

答えて

1

最初は、Graphics.LineTo()でマウスをトレースしてから、マウスの上下のイベントで再生を開始してからそこから移動してください。グラフィックス領域には多くのものがありますが、それは楽しいものです。アレイ用として

List<Point> points=new List<Point>(); 

後に、マウスの動きに:

points.Add(new Point(mouse.X,mouse.Y)); 

とずっと後に、あなたは本当のポイントアレイ

Point[] pa=points.ToArray(); 
+0

マウスの新しいポイントを配列に入れれば、どのようにコード内に見えるはずですか?私はこの種のものを意味するpp [0] = new Point(e.Location.X、e.Location.Y); – user538497

+0

は、配列を無視してLineToを使って描画します –

1

が必要な場合には、処理する必要がありますマウスを下に動かし、イベントをマウスで上げていくと、何らかのデータを保持してから、ペイントイベントに描画されます。に絵を描く。

あなたが行う必要があることの良い例については、CodeProject articleをご覧ください。

曲線付きの接続点については、点セットからthis article for drawing Bezier curvesを参照する必要があります。もう一つはthat does spline interpolationです。

+0

私はPaintイベントでペイントしていますが、実際にはこれらの小さな点をどのように接続するかを知る必要があります。曲線は多くの点から作成されています:) – user538497

+0

描画私の答えにはベジェ曲線があります。見てみな。 –

0

Paul Sasikが参照するCodeProjectの記事は、優れた出発点です。曲線を描くには、点の配列をパラメータとし、点を通る曲線をレンダリングするGraphics.DrawBezier(...)を試してみてください。ただし、各セグメントにどのくらいの連続したポイントを使用するか、そして実行中のオーバーラップをどのように処理するかを決定する必要があるため、複雑な問題がいくつかあります。

+0

OK、私は左/右ボタンをクリックすると、それらのポイントを接続するが、その描画をする方法は、私はクリックし、ペイントのようなマウスのボタンを保持するときにカーブを描くコードを持っている?私はコードを作ったが、それは非常に長い、私はここにそれを貼り付けることができますか?多分それを訂正することはできますか? – user538497

関連する問題