agg::conv_stroke的shorten妙用

1 前言

    

I added the possibility to shorten paths in converters
conv_stroke and conv_dash. It's good for drawing
arroheads with rather thick strokes. Also thre's a
converter agg_conv_shoren_path.h that can be used
independently. 

I also added agg_conv_concat.h that also helps to work
with markers. Before you had to call:

ras.add_path(stroke);
ras.add_path(arrow);

Now you can use agg::conv_concat that simply
concatenetes two paths into one.

2  示例代码

m_slider1(80, 250,    600-10, 276,    !flip_y)

 add_ctrl(m_slider1);
 m_slider1.range(0,300);

 m_slider1.num_steps(30);
 m_slider1.value(1);


        //一种坍塌式的减少过程
        agg::ellipse ell1(230,230,140,150);
        agg::conv_stroke<agg::ellipse> stroke1(ell1);
        stroke1.width(30);
        stroke1.shorten(m_slider1.value());
        ras.add_path(stroke1);


        //类似于缩短
        agg::path_storage ps;
        ps.move_to(20,30);
        ps.line_to(440,30);
        agg::conv_stroke<agg::path_storage> stroke2(ps);
        stroke2.width(30);
        stroke2.shorten(m_slider1.value());
        ras.add_path(stroke2);

你可能感兴趣的:(agg,stroke,conv)