【问题标题】:Explaining DrawArc method?解释 DrawArc 方法?
【发布时间】:2013-03-16 10:53:01
【问题描述】:

我有一个任务,我要画一个八字形,所以我认为它是画四个弧线。我尝试使用DrawArc 方法,但我真的不明白它是如何工作的。

DrawArc 方法有 4 个参数: 1-笔。 2-要绘制的矩形。 3-起始角度。 4-扫角。

我不知道起始角和扫角,有知识的人可以告诉我这两个参数是什么以及它们如何影响绘图吗?

同样给出矩形参数以(0,0)为起点。

编辑:

我已经尝试了以下代码:

        e.Graphics.DrawArc(drawPen, 0, 0, 600, 400, 45, 90);
        e.Graphics.DrawArc(drawPen, 0, 345, 600, 400, -45, -90);

结果如下:

我想让它变大,我玩过代码但没有成功,我不明白我在做什么,我只是在改变数字,这就是我要求解释的原因。

【问题讨论】:

  • 你疯了吗read the documentation?似乎它很好地解释了这些参数的含义。哪部分没看懂?您是否编写了一些代码来使用它并尝试各种值以查看会发生什么?当我不理解它们时,我通常就是这样弄清楚它们是如何工作的。
  • 您是否真的认为在我来这里询问之前我还没有阅读文档。让我假设您真的了解文档中的所有内容,请您向我解释一下什么是起始角和扫描角?
  • @user,文档中的起始角度和扫描角度都非常明确(分别从 x 轴到圆弧起点顺时针测量的角度 从 startAngle 参数到圆弧终点顺时针测量的角度)。 圆弧是椭圆的周长在 startAngle 参数和startAngle + sweepAngle 参数之间的部分中进一步解释了这一点。正如科迪所说,你能澄清一下你不明白的地方吗?

标签: c# winforms draw


【解决方案1】:

您想象二维坐标轴和顺时针旋转,
起始角度:显示要从 X 轴开始绘制的点
扫角:顺时针旋转的量度,

MSDN 也说:
startAngle:从 x 轴到圆弧起点顺时针测量的角度,以度为单位。

sweepAngle:从 startAngle 参数顺时针测量到结束的角度(以度为单位) 圆弧的点。

例如:水平弧和垂直弧:

  switch (ArcType)
        {
            case ArcType.Horizantal :
                g.DrawArc(Pens.Black, 0, 15, 15, 15, 0, -180); 
                break; 
            case ArcType.Vertical:
                g.DrawArc(Pens.Black, 0, 15, 15,15, -90,180);                    
                break;
        } 

【讨论】:

  • 您写道:“sweepAngle:从 startAngle 参数到圆弧终点顺时针测量的角度,以度为单位”。所以,这意味着sweepAngle = desiredAbsolueEndAngle - startAngle。我认为
【解决方案2】:

坐标用于从上到左按宽度和高度绘制一个完整的椭圆。实际绘制椭圆的哪一部分取决于起点和终点的角度。如果圆是时钟,则 3:00 为 0,6:00 为 90,9:00 为 180,12:00 为 270。

【讨论】:

  • 我也对此感到困惑 - 然后我意识到起始位置 (x,y) 是完整椭圆边界框的顶部 左角 .它不是椭圆的中心,就像你在数学中在纸上画的那样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多