MFC描绘太极图可以使用Pie进行圆形的填充,但是AGG怎么才能够描绘半圆,然后填充半圆,目前找到的agg::ellipse无法堪此大任。
inline unsigned ellipse::vertex(double* x, double* y)
{
if(m_step == m_num)
{
++m_step;
return path_cmd_end_poly | path_flags_close | path_flags_ccw;
}
if(m_step > m_num) return path_cmd_stop;
double angle = double(m_step) / double(m_num) * 2.0 * pi;
if(m_cw) angle = 2.0 * pi - angle;
*x = m_x + cos(angle) * m_rx;
*y = m_y + sin(angle) * m_ry;
m_step++;
return ((m_step == 1) ? path_cmd_move_to : path_cmd_line_to);
}
目前即使通过修改agg::ellipse的函数代码如上:
修改行:
double angle =double(m_step) / double(m_num) * 1.0 * pi;
描绘一半的角度,只是显示半圆!!
然后能够描绘半圆,并且填充,但是这里有一个问题,半圆的位置需要进行调整,稍微需要根据圆心进行旋转。问题又来了:
上一章节就已经说明对于agg::trans_affine类的rotate函数的旋转,完全无法控制,不知道转到什么地方去了!!!
时间: 2024-12-28 17:53:44