C#における描画は、フォームや描画メソッドをサポートしたコントロール上に行います。
  標準の描画クラスは、ネームスペースSystem.Drawing内で定義されています。
ネームスペース System.Drawingは、Vidual Studioでデフォル
 ト指定されていますので、プログラム冒頭でusingディレクティブで導入する必要はありません。

  


  Graphics クラス(グラフィックスオブジェクト)
           直線を描く
     円(楕円)を描く
     自由曲線
を描 く
     四角形を描く
     多角形を描く
           テキストを描く
     座標変換を行う
           

  Penクラス(描画用ペンオブジェクト)
  Pointクラス(位置指定用ペンオブ ジェクト)
  Brushクラス(塗りつぶし用オブジェ クト)
  Fontクラス(文字フォント指定オブ ジェクト)
  Iconクラス(アイコンオブジェクト)
  Rectangleクラス(領域オブジェ クト)



直線を描く
   
  描画を行うには、まず、Graphicsクラスのオブジェクトを作り、そのオブジェクトのメソッドを用います。
      Graphics g=CreateGraphics();

   ここでは、gがインスタンスになります。
       次に、線系の描画を行う場合はPenクラスのオブジェクトを、塗りつぶし系の描画を行う場合は、Brushクラスのオブジェクトを
   作成します。
     Pen newpen=new Pen(Color.Black,2); //線幅2の黒色のペン指定

     単純な直線を引くには、DrawLineメソッドを使います。
        g.DrawLine(newpen,x1,y1,x2,y2);

   描画は現在のクライアント領域(デフォルトでは、フォーム上)に行われます。
    
   また、連続直線を引くには、DrawLinesメソッドを使います。
    連続直線の頂点座標は、Pointオブジェクトで指定します。
        Point[]   po={new Point(x1,y1),
new Point(x2,y2), new Point(x3,y3)};
        g.DrawLines(newpen,po);     

 
円(楕円)を描く
    円を描くには、DrawEllipseメソッドを用います。
            g.
DrawEllipse(newpen,x1,y1,wid,hei); //(x1,y1)は円が内接する最小の平行四角形の左上隅座標
                                                           //widは         〃              幅
                                   //heiは          〃              高さ
    widとheiが異なる場合は楕円となり、扁平率=hei/widとなります。    
         
        円の内側を色又はパターンで塗りつぶす場合は、まず、Brushオブジェクトを作成します。
            SolidBrush newbrush=new
SolidBrush(Color.Blue);  //ブラシに青色を指定
            g.FillEllipse(newpen,x1,y1,wid,hei);

         円弧を描く場合は、DrawArcメソッドを用います。
     
g.DrawArc(newpen,x1,y1,wid,hei, de1,de2);  //de1は描画を開始する角度(degree)、de2は終了する  〃
          扇形を描く場合は、DrawPieメソッドを用います。
      g.DrawPie(newpen,x1,y1,wid,hei,rad1,rad2);
   
自由曲線を描く
      
連続直線では、通過する頂点座標をあらかじめ指定しました が、自由曲線では、制御座標(頂点ではない)を指定し
   ます。
    制御座標を指定して、曲線を描く関数は数多くありますが、制御座標自体が通過点となるのがスプライン曲線です。
    C#のDrawCurveメソッドは、スプライン曲線となります。

         Point[]   po={new Point(x1,y1), new Point(x2,y2), new Point(x3,y3)}
          g.DrawCurve(newpen,po);     

  
四角形を描く
     
C#で四角形を描く関数は、DrawRectangleメソッドにな ります。
          g.DrawRectangle(newpen,x1,y1,w,h); 
//(x1,y1)は四角形の左上隅座 標
                                                            //wは    〃   幅
                                 //hは     〃   高さ


多角形を描く
  多角形を描く関数は、DrawPolygonメソッドになります。
   次の例では、3角形が描かれます。
 
      Point[]   po={new Point(x1,y1), new Point(x2,y2), new Point(x3,y3)};
          g.
DrawPolygon(newpen,po);     

       多角形の内側を塗りつぶすには、FillPolygonメソッドを用います。
          g.FillPolygon(newbrush,po);

テキストを描く
  
   C#では、BasicでのPrint文のようなメソッドはなく、クライアント領域へのテキストの描画であるDrawStringメソッドを利用します。
          Font newfont=new Font("MS明朝",size);// 第1引数はフォント名、第2引数はフォントサイズ
         g.DrawString( s, newfont,Brushes.Blue,x,y); //sは描画するテキスト文字列、x,yは描画領域の左上隅

座標変換を行う
     C#には、簡易な座標変換メソッドが用意されています。
    
    C#のデフォルトの座標原点は、クライアント領域の左上隅です。この原点を移動するには、TranslateTransformメソッドを利用し ます。
          g.
TranslateTransform(x1,y1); //座標原点を(x1,y1)に移動
  
    座標軸をde度(degree)だけ回転するには、
RotateTransformメソッドを利用します。
           g.RotateTransform(de);

    座標スケールを変換するには、
ScaleTransformメソッドを利用します。
            g.ScaleTransform(scx,scy);  //X軸をscx倍、Y軸をscy倍する

    C#でのY軸方向はデフォルトでは下方向を指し示しますので、座標軸方向を反転するには、次のとおりコーディングします。                
        g.ScaleTransform (-1,1);   //X軸方向の反転
       g.ScaleTransform(1,-1);   //Y軸方向の反転

        

Penクラス(描画用ペンオブジェクト)
  
線系の描画(直線、曲線等)を行う場合は、次例のようにPenクラスのオブジェクトを最初に作成します。
     Pen newpen=new Pen(Color.Black,2); //線幅2の黒色のペン指定
   
     3番目のパラメータを省略すると、デフォルトで線幅1ピクセルとなります。

    線のスタイルの指定は、DashStyleプロパティを用います。   

           newpen.DashStyle=System.Drawing.Drawing2D.DashStyle.Solid; //実線
           newpen.DashStyle=System.Drawing.Drawing2D.DashStyle.Dash;  //破線
           newpen.DashStyle=System.Drawing.Drawing2D.DashStyle.DashDot; //破点線
           newpen.DashStyle=System.Drawing.Drawing2D.DashStyle.DashDotDot; //破点線(点が 2つ)
           newpen.DashStyle=System.Drawing.Drawing2D.DashStyle.Dot; //点線

    Penクラスを使って直線を引くには、
     Graphics g=CreateGraphics();
      g.DrawLine(newpen,x1,y1,x2,y2);
 
Pointクラス(位置指定用ペンオブ ジェクト)

    座標上の座標点を表すクラスです。事例のように、x座標、y座標を指定してオブジェクトを生成します。

          Point[]   po=new Point(x,y);
  //x,yは整数

   連続直線や連続曲線を描く場合には、3つ以上の座標点を一括して指定する場合が多くあ ります。 
        Point[]   po={new Point(x0,y0),
new Point(x1,y1), new Point(x2,y2)};

 
  もちろん、上記の指定は、次のコードと同じ意味です。
     po[0]=Point(x0,y0);
      po[1]=Point(x1,y1);
      po[2]=Point(x2,y2);

   Pointクラスを使って連続直線を引く には、
     Graphics g=CreateGraphics();
      g.DrawLines(newpen,po);    

Brushクラス(塗りつぶし用オブジェ クト)
        塗りつぶし系の描画を行う場合は、次例のようにBrushクラスのオブジェクトを最初に作成します。

          SolidBrush newbrush=new SolidBrush(Color.Blue);  //ブラシに青色を指定

    
Brushクラスを使って円の中を塗りつぶすには、
      Graphics g=CreateGraphics();
           g.FillEllipse(newpen,x,y,wid,hei);


Fontクラス(文字フォント指定オブジェクト)
      
使用するフォント名、フォントサイズを指定します。
          Font newfont=new Font("MS明朝",size);// 第1引数はフォント名、第2引数はフォントサイズ

   
     Fontクラスを使って、文字を描くには、
     Graphics g=CreateGraphics();
         g.Drawstring( s, newfont,Brushes.Blue,x,y); //sは描画するテキスト文字列、x,yは描画領域の左上隅

Iconクラス(アイコンオブジェクト)
   ウィンドウズのアイコンをC#で扱うために、Iconクラスがあります。
     Icon ico = new Icon(s);  //文字列sは、アイコンファイル位置のフルパス

   
次例では、アイコンの画像イメージを25×25ピクセルのビットマップイメージに読込んだ 後、アイコンオブジェクトを棄てています。 
          Bitmap img=new Bitmap(25,25);
          img=ico.ToBitmap();
          ico.Dispose();

Rectangleクラス(領域オブジェクト)
    四角形の領域を、指定するにはRecrangleクラスを用います。
      Rectangle rect = new Rectangle(x,y,w,h);//x,y・・・四角形領域の左上端座標、wは幅、hは高さ

        Rectangleクラスを使って、四角形を描くには、
       Pen newpen=new Pen(Color.Black,2); //線幅2の黒色のペン指定
      DrawRectangle(newpen,rect);