我正在创建一个程序,可以在您单击的位置绘制随机生成的圆圈大小。如果您移动鼠标将单击左键,它将留下随机大小的圆圈。
但是,当你移动鼠标时,我希望这些圆圈变得比较小。例如,从一个大小为20的圆圈开始,而不是增加一个圆圈,这样下一个圆圈将是21比22大于23等。当它达到80时,转动它,然后去80,79,78,77,76等。
这是随机生成的圆圈的代码。
我尝试了几种不同的方式,但我只是一个学习者。感谢您提供的任何帮助。
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 :(得分: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);