wxWidgets绘制顺时针椭圆弧

时间:2014-06-11 12:54:26

标签: c++ wxwidgets

wxDC::DrawEllipticArc州的docs

  

startend指定相对于矩形中心的三点钟位置的弧的起点和终点。角度以度为单位指定(360是完整的圆圈)。 正值表示逆时针运动。

所以打电话:

wxDC::DrawEllipticArc( ... 90, 270 )

给我:

足够公平,弧线从逆时针方向从12点钟到6点钟。

现在我想在顺时针方向从12o&时钟到6o'时钟。所以我打电话给:

wxDC::DrawEllipticArc( ... -90, -270 )

但我得到了同样的结果!

我已经尝试了不同顺序的+/- 90和+/- 270的各种组合,但是所有组合都产生12o'时钟到6o'时钟在逆时针弧(usulally)或一个完整的圆圈(有时)我找不到组合来制作另一半的#。'

============修复================

在我的输入数据(DXF文件)中,顺时针方向由小于起始角度的结束角度指示。所以这段代码完成了工作

   if( ea < sa ) {
        // required to draw in clockwise direction
        // work arround for wxWidgets bug http://trac.wxwidgets.org/ticket/4437
      ea += 360;
   }
    dc.DrawEllipticArc ( ... sa, ea );
在Windows 7上使用gcc / codeblocks / mingw

wxWidgets 3.0.0

1 个答案:

答案 0 :(得分:0)

此功能存在问题,正在讨论here,摘要是它几乎肯定是错误的,但我们只是不知道如何修复还没完成。请在那里添加您的评论。

话虽如此,我认为您可以通过从270450绘制弧线来实现所需的结果......