renderer_outline_aa更快的渲染线段算法

1 前言

本章提供了一种新的渲染线段的算法,相比于已经实现的stroke管道算法,平均提高了2倍的速度,最好的情况下是2.6倍加速度。

2 头文件

#include"agg/include/agg_rasterizer_outline_aa.h"

#include"agg/include/agg_renderer_outline_aa.h"

3 代码实例:

agg::rendering_buffer&rbuf = rbuf_window();

agg::pixfmt_bgr24 pixf(rbuf);

typedef agg::renderer_outline_aa<agg::pixfmt_bgr24> renderer_type;

agg::line_profile_aa profile;

profile.gamma(agg::gamma_power(1.2));

profile.min_width(0.75);

profile.smoother_width(3);

profile.width(5);//设置线宽

renderer_type ren(pixf,profile);

agg::scanline_u8 sl;

typedef agg::rasterizer_outline_aa<renderer_type> rasterizer_type;

rasterizer_type ras(ren);

ras.round_cap(true);//设置线段的端点形状

ren.color(agg::rgba8(255,0,0));//设置线段的颜色

ras.move_to_d(100,100);

ras.line_to_d(500,500);

ras.render(false);

邮件的详细信息:

http://sourceforge.net/p/vector-agg/mailman/vector-agg-general/?viewmonth=200309&page=1

时间: 2024-10-19 21:26:48

renderer_outline_aa更快的渲染线段算法的相关文章

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

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

更快找到正确的机器学习算法

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:机器学习无疑是现在一个高大上的热点,而且微软在Azure提供了机器学习的服务.那么如何更快找到正确的机器学习算法呢?微软也给大家提供了建议. 随着大数据的深入应用,机器学习也从学术界逐步走入到工业界,现在电子商务.社交.广告.智能硬件都有机器学习的身影.微软作为一家有着深厚科研实力的公司,不仅在Azure中提供了机器学习的服务供大家选用,还提供了一个名为Azure Machine Learni

更快的求整数幂算法

相信整数幂运算作为一个算法演变的例子是再合适不过的了为了节省访客们宝贵的学习时间省去介绍递归等可能涉及到的初级概念的定义.同时如果发现文中有错误的地方请敞开衣服指正. 因为在测试性能时合适的测试数据是必要的,所以本文用C++的大数类进行演示. 点击获取C++大数类源码 这里我们先列一下会提到的算法分析技术: 动态规划 减治法 测试平台: Linux g++ 4.7 原始递归方法 这就不花时间赘述什么了. BigInteger pow(BigInteger x, int N) { if (N ==

西蒙算法在量子计算机上“跑”得更快

来自南非的一组研究团队近日成功地在量子计算机上运行了西蒙算法(Simon’s algorithm),且这一算法在量子计算机上的运行表现比电子计算机表现得更好.相关论文刊登在<物理评论快报>上. 量子计算机是一种基于量子力学的计算设备,用来存储数据的对象是量子比特而非经典计算机的电子比特. 科学界普遍认为,由于量子计算机能够利用量子纠缠和叠加等独特的量子物理属性,在运行某些特定算法时,它会比现有计算机更为快速和高效.遗憾的是,到目前为止,还没有办法在量子计算机上运行这些量子算法来检验这一理论.

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

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

探寻C/C++中更快的大数(自然数集)模板

本文系fcbruce个人原创整理,转载请注明出处http://blog.csdn.net/u012965890/article/details/40432511,谢谢! 我们知道在C/C++中int型可处理-2^31~2^31-1(32位及以上编译器),long long型可处理-2^63~2^63-1的数据,这实际上是非常有限的,在很多情况下,我们往往会处理范围更大的数据.Java中有BigInteger类,python中想要多大就有多大(取决于内存),但是C/C++就显得有些乏力,这时候我们

更轻更快的Vue.js 2.0与其他框架对比(转)

更轻更快的Vue.js 2.0 崭露头角的JavaScript框架Vue.js 2.0版本已经发布,在狂热的JavaScript世界里带来了让人耳目一新的变化. Vue创建者尤雨溪称,Vue 2.0 在性能上有显著的提升,同时保持轻量的文件下载: 渲染层基于一个轻量级的Virtual DOM实现进行了重写,该Virtual DOM实现fork自snabbdom.新的渲染层相比v1带来了巨大的性能提升,也让Vue 2.0成为了最快速的框架之一. 根据1.0到2.0迁移指南,“大约90%的API是相

Java8 更快的原子类:LongAdder

更快的原子类:LongAdder 大家对AtomicInteger的基本实现机制应该比较了解,它们是在一个死循环内,不断尝试修改目标值,知道修改成功,如果竞争不激烈,那么修改成功的概率就很高,否则,修改失败的概率就很高,在大量修改失败时,这些原子操作就会进行多次循环尝试,因此性能就会受到影响 那么竞争激烈的时候,我们应该如何进一步提高系统性能呢?一种基本方案就是可以使用热点分离,将竞争的数据进行分解.基于这个思路,打击应该可以想到一种对传统AtomicInteger等原子类的改进方法,虽然在CA