libro
www.tuyano.com
初心者のためのC#プログラミング入門

グラフィックの描画 (3/5)

作成:2013-09-07 11:08
更新:2013-09-07 11:08

■主な描画用メソッド

では、実際に図形を描画するメソッドを使ってみましょう。描画用メソッドは非常に沢山ありますので、ここでは基本的なものに絞って説明を行うことにしましょう。


●直線を描く
《Graphics》.DrawLine(《Pen》, 
    横1, 縦1, 横2, 縦2 );
《Graphics》.DrawLine(《Pen》,
    《Point》,《Point》);

折れ線を描く
《Graphics》.DrawLines(《Pen》,
     《Point配列》 );

●四角形を描く
《Graphics》.DrawRectangle(《Pen》, 横位置, 縦位置, 横幅, 高さ );
《Graphics》.DrawRectangle(《Pen》,《Rectangle》);
《Graphics》.FillRectangle(《Pen》, 横位置, 縦位置, 横幅, 高さ );
《Graphics》.FillRectangle(《Pen》,《Rectangle》);

●楕円を描く
《Graphics》.DrawEllipse(《Pen》, 横位置, 縦位置, 横幅, 高さ );
《Graphics》.DrawEllipse(《Pen》,《Rectangle》);
《Graphics》.FillEllipse(《Pen》, 横位置, 縦位置, 横幅, 高さ );
《Graphics》.FillEllipse(《Pen》,《Rectangle》);

●円弧を描く
《Graphics》.DrawArc(《Pen》,《Rectangle》, 開始角度 , 終了角度 );

●扇型を描く
《Graphics》.DrawPie(《Pen》,《Rectangle》, 開始角度 , 終了角度 );
《Graphics》.FillPie(《Pen》,《Rectangle》, 開始角度 , 終了角度 );

●多角形を描く
《Graphics》.DrawPolygon(《Pen》,《Point配列》);
《Graphics》.FillPolygon(《Pen》,《Point配列》);

●曲線を描く
《Graphics》.DrawCurve(《Pen》,《Point配列》);

●閉じた曲線(最後と最後がつながってる)を描く
《Graphics》.DrawClosedCurve(《Pen》,《Point配列》);
《Graphics》.FillClosedCurve(《Pen》,《Point配列》);

●ベジエ曲線を描く
《Graphics》.DrawBezier(《Pen》,《Point》,《Point》,《Point》,《Point》);
《Graphics》.DrawBeziers(《Pen》,《Point配列》);

(※「Point」「Rectangle」というのは、それぞれ位置や領域の値を扱うためのものです。これらについては後述します)

それぞれ引数が異なるもうちょっと複雑なものも用意されてたりしますので、ここにあげたのは「もっともシンプルなメソッド」と考えてください。とりあえずこれで基本的な図形ぐらいは描けるようになるでしょう。

メソッドをよく見ると、「Draw○○」と「Fill○○」という名前のものに分けられることがわかります。Drawで始まるメソッドは「線分図形を描く」ものです。そしてFillで始まるメソッドは「内部を塗りつぶした図形を描く」ものになります。

以下に簡単なサンプルを挙げておきましょう。Form継承クラスとして用意してあるので、これを別途実行して表示してください(前回の記事を参照のこと)。四角形と円を表示したウインドウを作成します。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

using System;
using System.Drawing;
using System.Windows.Forms;

namespace MyFrmApp
{
    public class MyForm : Form
    {
            
        public MyForm()
        {
            this.Width = 300;
            this.Height = 200;
            this.Paint += myframe_paint;
        }
            
        private void myframe_paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Pen p = new Pen(Color.Red);
            Brush b = new SolidBrush(Color.Blue);
            g.FillRectangle(b,50,50,50,50);
            g.DrawEllipse(p,75,75,50,50);
        }
    }
}


※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る