C# 如何在WinForms应用程序中创建同心圆图案?
我很难把这些圆做成同心的形状。例如,下一个圆越大,然后越大,依此类推。有点像地核、地核、地核和地壳 以下是我的全部代码:C# 如何在WinForms应用程序中创建同心圆图案?,c#,.net,winforms,C#,.net,Winforms,我很难把这些圆做成同心的形状。例如,下一个圆越大,然后越大,依此类推。有点像地核、地核、地核和地壳 以下是我的全部代码: namespace ClickAppearBalls { public partial class Form1 : Form { private Random randClick; private Graphics paper; private Pen pen; public Form1()
namespace ClickAppearBalls
{
public partial class Form1 : Form
{
private Random randClick;
private Graphics paper;
private Pen pen;
public Form1()
{
InitializeComponent();
randClick = new Random();
paper = picCanvas.CreateGraphics();
}
private void picCanvas_Click(object sender, EventArgs e)
{
int x, y, size1, size2;
x = picCanvas.Height / 2;
y = picCanvas.Width / 2;
Color color = Color.FromArgb(randClick.Next(0, 256), randClick.Next(0, 256), randClick.Next(0, 256));
Pen pen = new Pen(color);
pen.Width = 3;
size1 = 30;
size2 = 30;
paper.DrawEllipse(pen, x, y, size1, size2);
}
}
}
您需要在类上定义size变量,以便在连续单击时使用它。然后你需要在每次点击时增加它
namespace ClickAppearBalls
{
public partial class Form1 : Form
{
private Random randClick;
private Graphics paper;
private Pen pen;
private int circleSize = 30;
public Form1()
{
InitializeComponent();
randClick = new Random();
paper = picCanvas.CreateGraphics();
}
private void picCanvas_Click(object sender, EventArgs e)
{
int x, y;
x = picCanvas.Height / 2;
y = picCanvas.Width / 2;
Color color = Color.FromArgb(randClick.Next(0, 256), randClick.Next(0, 256), randClick.Next(0, 256));
Pen pen = new Pen(color);
pen.Width = 3;
paper.DrawEllipse(pen, x - circleSize/2, y - circleSize/2, circleSize, circleSize);
circleSize += 10; // increase size here
}
}
}
实际上,你需要从外面开始收缩,因为新层将覆盖旧层,所以如果你想看到两层(或重新绘制内层),新层必须更小。@ScottChamberlain否,因为圆圈没有填充。我检查过了,它是有效的,虽然我还必须移动圆圈的中间点。对,我在想一个不同的函数。上面的建议是有效的,但是圆圈看起来好像点击了右下角,我怎么能让它在中间扩展,而不会重叠任何想法。谢谢你,盖伊。我几分钟前就修好了。需要将
x-circleSize/2、y-circleSize/2
作为圆的中点。