gpt4 book ai didi

c++ - wxWidgets绘制顺时针椭圆弧

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:23 24 4
gpt4 key购买 nike

docs对于 wxDC::DrawEllipticArc 状态:

start and end specify the start and end of the arc relative to the three-o'clock position from the center of the rectangle. Angles are specified in degrees (360 is a complete circle). Positive values mean counter-clockwise motion.

这样调用:

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 );

wxWidgets 3.0.0 在 Windows 7 上带有 gcc/codeblocks/mingw

最佳答案

这个函数有问题,正在讨论here总结是它几乎肯定是有问题的,但我们只是不知道如何修复它。请在此处添加您的评论。

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

关于c++ - wxWidgets绘制顺时针椭圆弧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com