我寫了一些代碼來(lái)生成隨機(jī)點(diǎn)并生成隨機(jī)矩形。所有調(diào)試似乎都可以,但代碼只繪制了 1 個(gè)矩形。查看我的代碼并告訴我出了什么問(wèn)題。private void btnRun_Click(object sender, EventArgs e){ Graphics g = pnlWarZone.CreateGraphics(); if (int.Parse(txtGenerationCount.Text) > 0) { RectangleF[] rects = new RectangleF[int.Parse(txtGenerationCount.Text)]; for (int i = 0; i < int.Parse(txtGenerationCount.Text); i++) { rects[i] = new RectangleF(GeneratePoint(),new SizeF(4,4)); } g.FillRectangles(new SolidBrush(Color.Blue), rects); }}更新:這是生成點(diǎn)的方法private Point GeneratePoint(){ Random r = new Random(); //return random.NextDouble() * (maxValue - minValue) + minValue; var x =r.Next(_rectangles[0].X, _rectangles[0].Width); var y =r.Next(_rectangles[0].Y, _rectangles[0].Height); return new Point(x,y);}
1 回答
小怪獸愛(ài)吃肉
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
您的代碼很可能看起來(lái)像這樣:
private Point GeneratePoint() {
Random rnd = new Random();
int x = rnd.Next(0, pnlWarZone.ClientSize.Width);
int y = rnd.Next(0, pnlWarZone.ClientSize.Height);
return new Point(x, y);
}
您要做的只是生成一個(gè)新的 Random 對(duì)象一次,然后始終重新使用該變量:
Random rnd = new Random();
private Point GeneratePoint() {
int x = rnd.Next(0, pnlWarZone.ClientSize.Width);
int y = rnd.Next(0, pnlWarZone.ClientSize.Height);
return new Point(x, y);
}
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
