我如何填写我的半圆?

Leb*_*ess 4 c# drawing

我试图填补我的两个半圆。我想要一面黑色,另一面白色。我用什么?

这是我的代码片段:

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Rectangle rect = new Rectangle(100, 100, 320, 320);
        e.Graphics.DrawArc(new Pen(new SolidBrush(Color.Black), 10), rect, 90, 180);
        e.Graphics.DrawArc(new Pen(new SolidBrush(Color.White), 10), rect, 270, 180);
    }
Run Code Online (Sandbox Code Playgroud)

TaW*_*TaW 8

您期望被调用FillArc的实际上被称为FillPie.

它采用与 相同的参数DrawArc,因此将执行以下操作:

e.Graphics.FillPie(Brushes.White, rect, 90, 180);
e.Graphics.FillPie(Brushes.Black, rect, 270, 180);
Run Code Online (Sandbox Code Playgroud)

如果您想使用相同的矩形,您可以将其“缩小”笔宽度的 1/2:

rect.Inflate(-5, -5);
Run Code Online (Sandbox Code Playgroud)

使用

e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Run Code Online (Sandbox Code Playgroud)

你得到这个:

在此处输入图片说明

  • 这就是我正在寻找的确切答案,我和OP有同样的问题。这就是答案。为什么OP不将此设置为答案?谢谢。 (2认同)