点を描画する
ボタンとウインドウを表示できたので、次は点を描画したい。点を描画できれば、一応なんでも描画できるわけだし。
どうやら、図の描画には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);
画面はこんな感じ。
とりあえず、点を描画できるようになった。
次は、何を描画するかだ。
Posted by skiyo at 2003年11月03日 03:32