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版本画线,但是上面两个版本应该如何组合使用,尤其是这么细的线段如何查看!!

时间: 2024-11-08 01:30:14

AGG第三十九课 rasterizer_scanline_aa画线函数疑惑的相关文章

NeHe OpenGL教程 第三十九课:物理模拟

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十九课:物理模拟 物理模拟简介: 还记得高中的物理吧,直线运动,自由落体运动,弹簧.在这一课里,我们将创造这一切. 物理模拟介绍 如果你很熟悉物理规律,并且想实现它,这篇文章很适合你. 在这篇教程里,你会创建一个非常简单的物理引

条目三十九 确保判别式是“纯函数”

<条目三十九 确保判别式是"纯函数"> 一个判别式(predicate)是一个返回值为bool类型(或者可以隐式地转换为bool类型)的函数. 一个纯函数(pure function)是指返回值仅仅依赖于其参数的函数.纯函数所能访问的数据应该仅局限于参数以及常量(在函数生命期内不会被改变 判别式类(predicate class)是一个函数子类,它的operator()函数是一个判别式,也就说是,它的operator()返回true或者false. 一个精心设计的判别式类应

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

代码 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_bin_solid<renderer_base_type> ren

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

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_bin_solid<renderer_base_type> render

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

1 渲染代码 void TestStrokeAAPerformance() { 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

JAVA学习第三十九课(常用对象API)- 集合框架(七)— Map集合及其子类对象

一.Map集合常见子类 HashTable:内部结构是哈希表,同步,此实现提供所有可选的映射操作,不允许使用 null 值和 null 键 (HashTable下有子类Properties,使用频率非常高,用来存储键值对型的配置文件信息和IO技术相结合) HashMap:内部结构是哈希表,不同步,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键. TreeMap:内部结构是二叉树,不同步,可以对Map集合中的键进行排序. 二.HashMap演示 import java.ut

AGG第三十二课 renderer_outline_aa更快的渲染线段算法

留给:曾经在校园奔跑时候,摔破膝盖,擦伤手掌的孩子! 1 前言 本章提供了采用新的线段渲染算法的例子,相比于已经实现的stroke管道算法,平均提高了2倍的速度,最好的情况下是2.6倍加速度.当然这种算法应用在细线上速度才会快,最好是小于2个像素. 在其他的章节中会跟conv_stroke进行效率的对比.同样的避免不了引入更多的限制,这一点可以在下面了解到.多说一句:conv_stroke是最昂贵的转换器. The rasterizer itself works much faster, bes

第三十九课:requestAnimationFrame详解

大家应该都知道,如果一个页面运行的定时器很多,无论你怎么优化,最后肯定会超过指定时间才能完成动画.定时器越多,延时越严重. 为此,YUI,kissy等采用中央队列的方式,将定时器减少至一个.浏览器厂商也因此原生支持了requestAnimationFrame方法,此方法基本上能保证每秒刷新60次.但是此方法在还没形成标准之前,很多低版本浏览器是不支持的,比如:IE9以及以下版本,不过谷歌和火狐都用私有的方法名实现了requestAnimationFrame方法.比如:谷歌:webkitReque

第三十九课

scsi及iscsi的基础原理 CentOS上的iscsi的使用 keepalived的基础应用 keepalived的高级应用 一. 二.keepalived基础应用