Yve*_*ust 6 windows precision gdi
我正在使用Windows GDI函数Arc绘制圆弧.它需要参数圆的边界框和两个分界开始和结束角度的点(不是角度本身).
当我传递如下的参数时,我得到一个异常结果.而不是具有大半径的圆的准平圆弧(大约13069,边界框是正方形),我得到图片上的输出(旋转;第二个版本显示两个端点的位置;第三个是预期的输出).
Arc(hDC, -25660, -12837, 477, 13300, 475, 462, 476, 66);
Run Code Online (Sandbox Code Playgroud)
我怀疑异常是由于弧的大半径/平坦度,尽管坐标不是那么大.你有什么解释吗?我主要关注的是找到出现这些显着特征的条件,以便解决这些问题.
这是一个产生问题的简单控制台应用程序:
#include <Windows.h>
int main(int argc, char* argv[])
{
HDC hDC= GetDC(GetForegroundWindow());
SelectObject(hDC, GetStockObject(WHITE_PEN));
// Right
Arc(hDC, -16, 37, 457, 510, 475, 462, 476, 66);
// Wrong
Arc(hDC, -25660, -12837, 477, 13300, 475, 462, 476, 66);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |