2003年11月03日

点を描画する

ボタンとウインドウを表示できたので、次は点を描画したい。点を描画できれば、一応なんでも描画できるわけだし。

どうやら、図の描画にはGDI+というのを使うらしい。


using System.Drawing

とやっておけば、いろいろ描画できるようだ。

ところが、点を描画するメソッドはどこにも無い。楕円、四角、直線、曲線を描くのはあった。仕方なく、楕円の半径を1にして書いてみたが、点が大きな気がした。

もうちょっと探すと、SetPixelというメソッドを見つけた。Bitmapの特定のピクセルを操作するメソッドだ。ウインドウにBitmap用の領域を貼り付けて、そのピクセルを操作すれば、点を描画することはできそうだ。

というわけで、MSDNのサンプルを見て


Bitmap myBitmap = new Bitmap(500, 500);
// Draw myBitmap to the screen.
pe.Graphics.DrawImage(
    myBitmap,
    0,
    0,
    myBitmap.Width,
    myBitmap.Height);

と書いてみたらうまく500×500のBitmap領域が表示された。
あとはmyBitmap.SetPixel()を使って各ピクセルを操作するだけだ。

で、試しに、中心(150,150)とする半径30の円の内部は黄色、外部は青色になるようにしてみた。


for (int Xcount = 0; Xcount < myBitmap.Width; Xcount++)
{
  for (int Ycount = 0; Ycount < myBitmap.Height; Ycount++)
  {
    if((30*30) > ((Xcount-150)*(Xcount-150) +(Ycount-150)*(Ycount-150)))
    {
      myBitmap.SetPixel(Xcount, Ycount, Color.Gold); //黄色
    }
    else
    {
      myBitmap.SetPixel(Xcount, Ycount, Color.DarkBlue); //青
    }
  }
}
// Draw myBitmap to the screen again.
pe.Graphics.DrawImage(
    myBitmap,
    20, //余白
    80, //余白
    myBitmap.Width,
    myBitmap.Height);

画面はこんな感じ。
form1.jpg

とりあえず、点を描画できるようになった。
次は、何を描画するかだ。

Posted by skiyo at 2003年11月03日 03:32
Comments
Post a comment









Remember personal info?