C#画面に丸を描く

c-sharp-circle-draw.png

マウスを押したところに点を打つ。

点を打つというメソッドはないみたい。Ellipseが代わりっぽい。

private void Form1_MouseDown(object sender, MouseEventArgs e)
       {
           Text = e.X.ToString() + "," + e.Y.ToString();
           m_nodes.Add(new Point(e.X, e.Y));
           //Penオブジェクトの作成(幅2の黒色)
           Graphics g = pictureBox1.CreateGraphics();
           Pen red_pen = new Pen(Color.Red,8);//ペンの色、ペンの太さ
 
           //点を打つ
           g.DrawEllipse(red_pen, e.X, e.Y,8,8);//ペン、位置x,位置y,幅,高さ
       }

ペンの太さ8だとこんなかんじに。赤い点が打った点である。 ペンの太さ1にすると、塗りつぶされていない丸になる
画像読み込み&表示済みのPictureBoxにそのまま上書きできるみたいだ。便利。

デフォルトだとエイリアスが出ている。
クリックしたところが円の真ん中になるようにする

g.DrawEllipse(red_pen, e.X, e.Y,8,8);//ペン、位置x,位置y,幅,高さ

で指定する座標は*円の左上隅*、なので、押したらなんかずれてる気分になる。
円の真ん中の気分になるためには?
半径÷2分だけマイナスにずらせばいい

Pen red_pen = new Pen(Color.DeepPink,8);
            //点を打つ
            g.DrawEllipse(red_pen, e.X-4, e.Y-4,8,8);

サポートサイト Wikidot.com