следующий код довольно прост - он заполняет поверхность проекта случайно выбранными пикселями - ничего особенного (пока игнорируйте XXXXXXX во втором методе).
private void PaintBackground()
{
Random rnd = new Random();
Bitmap b = new Bitmap(this.Width, this.Height);
for (int vertical = 0; vertical < this.Height; vertical++)
{
for (int horizontal = 0; horizontal < this.Width; horizontal++)
{
Color randomColour = GetRandomColor(rnd);
b.SetPixel(horizontal, vertical, randomColour);
}
}
Graphics g = this.CreateGraphics();
g.DrawImage(b, new Point(0, 0));
}
public Color GetRandomColor(Random rnd)
{
XXXXXXXXXXXXXXXX
byte r = Convert.ToByte(rnd.Next(0, 255));
byte g = Convert.ToByte(rnd.Next(0, 255));
byte b = Convert.ToByte(rnd.Next(0, 255));
return Color.FromArgb(255, r, g, b);
}
У меня вопрос такой ...
если вы замените XXXXXXXXX на "Random rnd = new Random ();" тестовый шаблон полностью превращается в горизонтальные полосы одного цвета и поэтому не является случайным.
Давай, кто-нибудь объяснит мне, почему это так?
Насколько я могу судить, единственная разница во второй попытке состоит в том, что метод GetRandomColour создает и использует новый экземпляр класса Random, но я не вижу, как это делает горизонтальные столбцы ..