这可能更像是一个数学问题,但我可以说我有两个重叠的椭圆:
我如何找到2个椭圆之间的区域(内椭圆和外椭圆之间的区域),因为我只有2个椭圆方程。我试图在Winforms中这样做,但我不认为框架有任何这样的功能。
答案 0 :(得分:1)
如果您想使用该区域绘制或在其中绘制,请按以下步骤操作:
private void Form2_Paint(object sender, PaintEventArgs e)
{
Rectangle R1 = new Rectangle(11, 11, 222, 111);
Rectangle R2 = new Rectangle(44, 44, 111, 55);
GraphicsPath GP1 = new GraphicsPath();
GraphicsPath GP2 = new GraphicsPath();
GP1.AddEllipse(R1);
GP2.AddEllipse(R2);
Region Re1 = new Region(GP1);
Region Re2 = new Region(GP2);
Re1.Exclude(Re2); // subtract the inner region
e.Graphics.Clip = Re1; // restrict the Graphics to the region
e.Graphics.Clear(Color.DarkOrange);
e.Graphics.ResetClip(); // maybe reset the clip
}
结果如下: