内容发布更新时间 : 2025/7/10 6:21:52星期一 下面是文章的全部内容请认真阅读。
iterator,const_iterator; typename cover_type; 成员方法 iterator begin(); unsigned num_spans();
void reset(int min_x, int max_x);
void add_span(int x, unsigned len, unsigned cover)
void add_cell(int x, unsigned cover) void add_cells(int x, unsigned len, const cover_type* covers) void finalize(int y) int y();
Rasterizer
span中covers类型(覆盖率)
用于遍历span,begin()取得指向第一个span的迭代器
num_spans()取得容器中span的数目 设置容器大小 加入一条线段 加入一个点 加入一组点
Scanline容器对应的Y坐标
怎么翻译呢?光栅化?光栅制造机?嗯~~算了,还是直接叫它Rasterizer(雷死特拉倒)吧-_-!!!
Rasterizer就是把相当于矢量数据的一堆顶点和命令转换成一行行的扫描线的设备,它就象粉刷工人对照着图纸把彩漆刷到墙上一 样。可以说是AGG里最重要的类型之一,套用建翔兄的话就是:
立功了!立功了!不要给GDI任何的机会!伟大的AGG的Rasterizer类!他了继承开源社区的光荣传统!达芬奇、Linus、 唐寅,在这一刻灵魂附体!
Rasterizer是关键对象!他代表了AGG伟大的设计理念!在这一刻!他不是一个人的战斗!他不是一个人!面对着全世界人民的目 光和期待,他深知责任的重大,0.001秒种之后将会是什么样的图像? 头文件
#include
template
成员方法
template
设置gamma值。
GammaF为一种仿函数
AGG自带有gamma_power、gamma_none、
gamma_threshold、 gamma_linear、gamma_multiply
bool rewind_scanlines(); bool navigate_scanline(int y); bool sweep_scanline(Scanline&); void reset();
void move_to(int x, int y);
void line_to(int x, int y);
void move_to_d(double x, double y); void line_to_d(double x, double y); void add_path(VertexSource& vs, unsigned path_id=0)
跳到第一个scanline位置,同时设置sorted为true。 这时再加入其它顶点会先清空现有顶点 跳到y行
把当前行画入Scanline,当下移一行
清空
简单的画线功能,单位为1/poly_subpixel_scale (poly_subpixel_scale一般为256) 简单的画