【发布时间】:2014-06-11 12:54:25
【问题描述】:
docs 的wxDC::DrawEllipticArc 状态:
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 );
Windows 7 上带有 gcc / codeblocks / mingw 的 wxWidgets 3.0.0
【问题讨论】: