绘制封闭图形时,采用一种颜色填充,然后采用另一个颜色描绘边框
操作步骤:
1 直接渲染顶点源
2 通过agg::conv_stroke提取顶点源的轮廓线
3 采用另一种颜色描绘轮廓线
实例代码:
agg::ellipse ell(200,200,50,100);
ras.add_path(ell);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));
ras.reset();
agg::conv_stroke<agg::ellipse> stroke(ell);
ras.add_path(stroke);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,0,255));
ras.reset();
同样可以调整看看如果先画轮廓线,再填充的效果:
agg::ellipse ell(200,200,50,100);
agg::conv_stroke<agg::ellipse> stroke(ell);
ras.add_path(stroke);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,0,255));
ras.reset();
ras.add_path(ell);
agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));
ras.reset();
分析:为什么第一种方法有效,第二种无效!!其实填充颜色的时候,连带边界一起渲染的,如果填充颜色放在后面,肯定连边界也重新渲染一遍,所以轮廓线的颜色就没有了!!
时间: 2024-11-05 15:50:08