定义文件:include/agg_arc.h
创新互联主要从事网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务巴楚,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792类函数构造器:
arc(double x, double y, double rx, double ry, double a1,double a2, bool ccw=true)
圆心为(x, y)和长短半轴分别为rx, ry,初始角度和终结角度为a1, a2
范围是0 注意:不是平常使用的角度180,360,而是弧度,否则出错 绘制一个圆心(400,100),长短半轴都是100的圆弧,初始角度是0,终结角度是3.14,折算成角度是180度。可以使用agg::deg2rad(90)将角度转换成弧度。 代码如下: agg::arc arc(400, 100, 100, 100, 0, 3.14,false); agg::conv_stroke ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0)); 分析:可以调整最后一个参数,修改成true,查看效果!! agg::arc arc(400, 100, 100, 100, 0, 3.14/3,true); agg::path_storage path; path.move_to(400,100); path.concat_path(arc); path.line_to(400,100);//连接回到圆心 path.end_poly();//重新闭合 ras.add_path(path); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0)); 我们可以不使用end_poly函数进行闭合,而是获取弧线的开始顶点,然后闭合。 agg::arc arc(400, 100, 100, 100, 0, 3.14/3,true); agg::path_storage path; path.move_to(400,100); path.concat_path(arc);//连接顶点源 path.line_to(400,100);//连接回到圆心 arc.rewind(0); double x; double y; arc.vertex(&x,&y); path.line_to(x,y);//从圆心连接到开始顶点源 ras.add_path(path); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0)); 从这个例子,我们可以了解两点: 1如何获取其他顶点源的起点,当然结束点可以通过遍历获得 2 如何与agg::path_storage配合使用,快速的绘制图形。 agg::path_storage类提供如下的函数 arc_to(double rx, double ry, double angle,bool large_arc_flag, bool sweep_flag, double x, double y) 添加一条弧路径,画轴长为rx, ry,角度为angle,优/劣弧,顺逆时针,终点在(x,y)。 但是不了解长短半轴,不知道角度,优劣弧,顺逆时针等等,都了解,但是就是画不了!! 测试例子1: //完全没有绘制图形 agg::path_storage ps; ps.arc_to(10,10,agg::deg2rad(90),true,false,160,100); agg::conv_stroke ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0)); 测试例子2: //绘制的图形太难理解,move_to到开始绘制点,然后顺时针绘制半圆 agg::path_storage ps; ps.move_to(320,160); ps.arc_to(80,10,6.28,true,true,160,160); agg::conv_stroke ras.add_path(stroke); agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0)); ras.reset(); 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。2 例子
2.1 绘制弧线
2.2 绘制扇形
1)代码如下:
2)代码如下:
3 agg::path_storage的arc_to疑惑
分享文章:AGG第十三课agg::arc渲染弧线和扇形-创新互联
文章起源:http://cdkjz.cn/article/jhsop.html