摘要:系统运维 应用场景路径点超出渲染范围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.
相关文章推荐
虚拟主机的专业参数,分别都是什么意思?2022-09-09
中非域名注册规则是怎样的?注册域名有什么用处? 2022-01-10
HostEase新年活动促销 美国/香港主机全场低至五折2021-12-28
HostGator下载完整备份教程分享2021-12-28
Flink中有界数据与无界数据的示例分析2021-12-28