2014-06-11 76 views
1

docswxDC::DrawEllipticArc状态:wxWidgets的绘图顺时针椭圆弧

startend指定相对于从所述矩形的中心的三点钟位置弧的开始和结束。角度以度数指定(360是完整的圆圈)。 正值表示逆时针运动。

所以美其名曰:

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

给我:

很公平,电弧从12o'clock吸引到6o'clock在逆时针方向。

现在我想从12点钟到6点钟的顺时针方向方向。所以我打电话:

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

但是我得到了同样的结果!

我尝试了各种不同顺序的+/- 90和+/- 270的组合,但是一切都会产生逆时针圆弧(常用)的12点钟到6点钟或全圆(有时候)我找不到一个组合来产生'另一半'。

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

以我的输入数据(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); 

的wxWidgets 3.0.0与Windows 7的gcc /代码块/ MinGW的

回答

0

有这功能有问题,它正在讨论here和总结的是,它几乎肯定越野车,但我们只是不知道如何修复它。请在那里添加您的评论。

这是说,我想你也许可以做到这一点,你需要通过借鉴270450弧结果...

+0

试图登录到Trac的bug跟踪系统,但无法摆脱验证码。我认为顺时针方向(起始角度大于终止角度)的DXF方式比用-ve角度摆放时要好。 – ravenspoint