AGG第三十九课 rasterizer_scanline_aa画线函数疑惑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AGG第三十九课 rasterizer_scanline_aa画线函数疑惑相关的知识,希望对你有一定的参考价值。

头文件

#include<agg_rasterizer_scanline_aa.h>

类型

template<class Clip =rasterizer_sl_clip_int>

class rasterizer_scanline_aa

成员函数

void add_path(VertexSource&vs,unsigned path_id=0)加入顶点源

void reset() 清空上一次的渲染缓存数据,每次调用add_path函数之前都需要执行该操作

其中也提供了简单的画线功能,但是实际上并没有生效,所以需要知道整个操作流程是如何执行的!!

void move_to(int x, int y);

void line_to(int x, int y);

如下是一个简单的使用rasterizer_scanline_aa的例子,并没有任何的效果

使用rasterizer_scanline_aa画线是不可能的,但是可以通过move_to_d和line_to_d的配合

使用,构建一个封闭的多边形,渲染出来的就是一个填充的多边形

代码如下:


    ras.reset();

    /*

    agg::path_storage ps1;

    ps1.move_to(200,200);

    ps1.line_to(400,200);

 

    agg::line_cap_e cap = agg::square_cap;

    agg::conv_stroke<agg::path_storage> stroke(ps1);

    stroke.line_cap(cap);

    stroke.width(50);

    ras.add_path(stroke);

    */

    //下面代码主要是测试rasterizer_scanline_aa如何画线,目前暂时无法实现

    ras.move_to(400,400);

    ras.line_to(500,500);

    agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

    ras.reset();

该例子是在已有的基础上进行测试的,不过有一点是可以肯定的,ras的连线函数之后,并没有指定渲染线段的样式,谁知道应该花虚线,还是实线。


摘自:http://www.360doc.com/content/11/1015/09/992979_156311972.shtml

头文件

#include <agg_rasterizer_scanline_aa.h>

 

主要记录两个画线的方法

void move_to(int x, int y) 简单的画线功能,单位为1/poly_subpixel_scale

void line_to(int x, int y)   (poly_subpixel_scale一般为256)

void move_to_d(double x , double y) 简单的画线功能,单位为像素

void line_to_d(double x , double y)

 

现在的一个疑问:可以使用下面的_d版本画线,但是上面两个版本应该如何组合使用,尤其是这么细的线段如何查看!!


以上是关于AGG第三十九课 rasterizer_scanline_aa画线函数疑惑的主要内容,如果未能解决你的问题,请参考以下文章

AGG 第十九课 agg::bezier_arc

AGG第四十九课 抗锯齿的算法理论

AGG第三十五课 gsv_text 渲染ASCII字符

AGG第三十六课 gsv_text_outline 渲染环绕的字符

AGG第三十三课 line_profile_aa 参数分析说明

AGG第三十四课 stroke_aa和outline_aa渲染线段效率对比