系统运维 应用场景路径点超出渲染范围N远头文件#include"agg/include/agg_conv_clip_polyline.h"简单例子 void ClipPathByPolyline() {
系统运维 应用场景
路径点超出渲染范围N远
头文件#includeagg/include/agg_conv_clip_polyline.h
简单例子void ClipPathByPolyline()
{
agg::rendering_buffer &rbuf = rbuf_window();
agg::pixfmt_bgr24 pixf(rbuf);
typedef agg::renderer_base<agg::pixfmt_bgr24> renderer_base_type;
renderer_base_type renb(pixf);
typedef agg::renderer_scanline_aa_solid<renderer_base_type>renderder_scanline_type;
renderder_scanline_type rensl(renb);
agg::rasterizer_scanline_aa<> ras;
agg::scanline_u8 sl;
ras.reset();
agg::path_storage ps;
ps.move_to(100,540);
ps.line_to(168.889,471.429);
ps.line_to(237.778,402.857);
ps.line_to(306.667,334.286);
ps.line_to(651.111,-8.57143);
ps.line_to(720,-6.85714e+19);
ps.line_to(200,400);
ps.line_to(400,400);
ps.line_to(200,500);
ps.line_to(700,400);
agg::conv_clip_polyline<agg::path_storage> polyline(ps);
polyline.clip_box(0,0,600,800);
agg::conv_dash<agg::conv_clip_polyline<agg::path_storage> >dash(polyline);
dash.add_dash(10,10);
agg::conv_stroke<agg::conv_dash<agg::conv_clip_polyline<agg::path_storage>> > stroke(dash);
stroke.width(2);
ras.add_path(stroke);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));
}
限制:
Here the lines will be clipped beforecalculating the rest. But if you have
very wide lines you will see some defects
To avoid it you may want to extend theclipping area to the maximal line width.
免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。