【发布时间】:2020-04-07 16:15:36
【问题描述】:
我对 GDI 有疑问。我在 WinForms 中完成。这是我得到的:
还有我的代码:
Graphics phantom = this.pictureBox1.CreateGraphics();
Pen blackPen = new Pen(Color.Black, 3);
Rectangle rect = new Rectangle(0, 0, 200, 150);
float startAngle = 180F;
float sweepAngle = 180F;
phantom.DrawArc(blackPen, rect, startAngle, sweepAngle);
phantom.Dispose();
我想得到这样的东西:
真的很抱歉我的绘画技巧。是否可以从弧本身创建这样的东西,还是我必须从椭圆中创建?我不知道该怎么做。欢迎任何提示。谢谢。
【问题讨论】:
-
嗯,当然,这是由三个弧构成的。祝你数学计算交点好运。
-
你有两个圆圈,我们称它们为上下。将上面的圆圈定义为 GraphicsPath 并将其传递给 Region 的构造函数。现在通过ExcludeClip 方法将该区域传递给e.Graphics。现在画下圆圈,由于剪裁,它会丢失顶部。
-
接下来,Reset() 图形并在 GraphicsPath 中定义下方的圆圈。这次使用 Graphics.Clip(),然后画上圈。它只会在较低的圆形剪辑所在的位置可见。