2016-04-11 12 views
0

Tıkladığınız, rastgele oluşturulan boyutlarda daireler çizen bir program yapıyorum. Farenizi hareket ettirirseniz sol tuşa basarsanız rasgele boyutlu daireler izler bırakacaktır.Ardışık sayı üretecini nasıl alabilirim?

Ancak, bu daireler, fareyi hareket ettirdiğinizde, küçültmekten büyük olmasını istiyorum. Mesela, bir daire ile art arda 20 büyüklükte bir daire ile başlayın, böylece bir sonraki daire 23'ten 22'ye 21 olacaktır. 80 dereceye ulaştığında dönün ve 80, 79,78,77,76 vb gidin.

Rastgele oluşturulmuş çemberin kodu budur.

Birkaç farklı yol denedim ama sadece bir öğrenciyim. Verebileceğiniz herhangi bir yardım için teşekkür ederim. Eğer değeri takip edebilirsiniz böylece

olay işleyicisi dışında büyüklük değişkeni bildirin böyle bir şey deneyebilirsiniz belki

private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Left) 
     { 
      Random rand = new Random(); 

      int width = this.ClientSize.Width; 
      int length = this.ClientSize.Height; 
      Graphics paper = pictureBox1.CreateGraphics(); 
      Pen pen = new Pen(colorDialog1.Color, 2); 

      int sizeCircle = rand.Next(20, 80); 

      int mouseX = e.X - (sizeCircle/2) ; 
      int mouseY = e.Y - (sizeCircle/2) ; 

      paper.DrawEllipse(pen, mouseX, mouseY, sizeCircle, sizeCircle); 
+0

soru net değil yeterince, rastgele yerine "sizeCircle" için ardışık sayılar atamak isterim doğru mu? –

+0

Evet. Her bir sonraki sayı yerine rastgele. Her bir sonraki numaranın en sondan bir tane olmasını istiyorum. 80 dönüşe ulaştığında ve bir sonraki sayı, ondan önceki sayıdan daha az olsun. –

cevap

0

... ..

bool enlarge = true; // flag to identitify if the size should enlarge or not 
int circle_size = 10; // initial size 
int circle_size_change = 5; // size value change 
int max_size = 80; // max size 
int min_size = 10; // min size 
private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     Random rand = new Random(); 

     int width = this.ClientSize.Width; 
     int length = this.ClientSize.Height; 
     Graphics paper = pictureBox1.CreateGraphics(); 
     Pen pen = new Pen(colorDialog1.Color, 2); 

     if(enlarge) 
     { 
      if(circle_size + circle_size_change > max_size) 
      { 
       enlarge = false; 
      } 
     } 
     else 
     { 
      if(circle_size - circle_size_change < min_size) 
      { 
       enlarge = true;  
      } 
     } 

     circle_size = enlarge ? circle_size + circle_size_change : circle_size - circle_size_change; 

     int mouseX = e.X - (circle_size/2) ; 
     int mouseY = e.Y - (circle_size/2) ; 

     paper.DrawEllipse(pen, mouseX, mouseY, sizeCircle, sizeCircle);