C++ wxWidgets绘制顺时针椭圆弧
forC++ wxWidgets绘制顺时针椭圆弧,c++,wxwidgets,C++,Wxwidgets,forwxDC::dravelliticarc状态: start和end指定相对于矩形中心的三点钟位置的弧的起点和终点。角度以度为单位指定(360是一个完整的圆)正值表示逆时针运动。 所谓: wxDC::DrawEllipticArc( ... 90, 270 ) 给我: 公平地说,弧是从12点到6点逆时针方向画的 现在我想顺时针从12点画到6点。因此,我呼吁: wxDC::DrawEllipticArc( ... -90, -270 ) 但我得到了同样的结果 我尝试过+/-90和+/-2
wxDC::dravelliticarc
状态:
start
和end
指定相对于矩形中心的三点钟位置的弧的起点和终点。角度以度为单位指定(360是一个完整的圆)正值表示逆时针运动。
所谓:
wxDC::DrawEllipticArc( ... 90, 270 )
给我:
公平地说,弧是从12点到6点逆时针方向画的
现在我想顺时针从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 );
if(ea
Windows 7上带有gcc/codeblocks/mingw的wxWidgets 3.0.0此函数中存在一个问题,正在讨论中,总结是它几乎肯定有缺陷,但我们只是不知道如何准确修复它。请在此处添加您的评论
话虽如此,我认为您可能能够通过从
270
到450
绘制一条弧来实现所需的结果,…尝试登录到trac bug tracker,但无法通过验证码。我认为DXF的顺时针指示方式(开始角大于结束角)比用-ve角乱搞要好。