2012-02-23 9 views
1

私はその場所100100どうすればランダムを使用してpictureBox1センター+ 10のポイントを描くことができますか?

でpictureBox1でポイントを描画]ボタンをクリックし、この単純なコードを毎回持っているが、私は最初に計算したいpictureBox1の中心を(私はそれを行う方法を学ぶ必要があります)。

、私はので、私はボタンをクリックするたびに、それは+ 10

private void button5_MouseClick(object sender, MouseEventArgs e) 
     { 
      Random rnd = new Random(); 
      drawPoint(100, 100); 
     } 

     public void drawPoint(int x, int y) 
     { 
     Graphics g = Graphics.FromHwnd(pictureBox1.Handle); 
     SolidBrush brush = new SolidBrush(Color.LimeGreen); 
     Point dPoint = new Point(x, (pictureBox1.Height - y)); 
     dPoint.X = dPoint.X - 2; 
     dPoint.Y = dPoint.Y - 2; 
     Rectangle rect = new Rectangle(dPoint, new Size(4, 4)); 
     g.FillRectangle(brush, rect); 
     g.Dispose(); 
     } 
+0

により、中心からランダムオフセットを計算しますか?または、別のプログラムのウィンドウをフォーム全体にドラッグするとどうなりますか?また、SolidBrushを廃棄する必要があります –

答えて

2

pictureBox1の中心位置からrandomalyポイントを描画しますランダムを使用したいが、これを試してみてください。それは10あなたが最小化し、フォームを復元したときにどうなる-10

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      var halfX = pictureBox1.ClientRectangle.Width/2; 
      var halfY = pictureBox1.ClientRectangle.Height/2; 

      Random rnd = new Random(); 
      var offsetX = rnd.Next(-10, 10); 
      var offsetY = rnd.Next(-10, 10); 

      drawPoint(halfX + offsetX, halfY + offsetY); 
     } 

     public void drawPoint(int x, int y) 
     { 
      Graphics g = Graphics.FromHwnd(pictureBox1.Handle); 
      SolidBrush brush = new SolidBrush(Color.LimeGreen); 
      Point dPoint = new Point(x, (pictureBox1.Height - y)); 
      dPoint.X = dPoint.X - 2; 
      dPoint.Y = dPoint.Y - 2; 
      Rectangle rect = new Rectangle(dPoint, new Size(4, 4)); 
      g.FillRectangle(brush, rect); 
      g.Dispose(); 
     } 
    } 

Result

+0

ほとんどの場合、中央にないpictureBox1上の点を描くことが必要です。いくつかの点は、私は彼らがフォーム上ではなく、pictureBoxの上にpictureBox上に描画されて参照してください傾ける。 – user1196715

+0

奇妙な、それは私のために問題なく動作します。あなたが描画場所に影響を与える可能性のある何か他のことをやっていない場合は、完全なアプリケーションリストを更新して投稿してください。 – StaWho

+0

mt form1の他の作業はありませんでした。ありがとう。 – user1196715

関連する問題