agg::vcgen_markers_term和简单的箭头描绘

第一个例子,简单的描绘箭头和箭尾,并没有使用直线进行相连

//Scanline Rasterizer

agg::rasterizer_scanline_aa<> ras;

agg::scanline_u8 sl;

agg::arrowhead ah;

ah.head(0,10,5,5);

ah.tail(10,10,5,5);

ras.reset();

agg::vcgen_markers_term mt;

mt.add_vertex(200,250,agg::path_cmd_move_to);

mt.add_vertex(280,250,agg::path_cmd_line_to);

agg::conv_marker<agg::vcgen_markers_term,agg::arrowhead> arr(mt,ah);

ras.add_path(arr);

//错误的情况:ras.add_path(ah),将不清楚描绘的具体位置

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

第二个例子,用线段将箭头和箭尾连接起来

agg::rasterizer_scanline_aa<>ras;

agg::scanline_u8 sl;

agg::arrowhead ah;

ah.head(0,10,5,5);

ah.tail(10,10,5,5);

// 用path_storage生成一条直线

agg::path_storage ps;

ps.move_to(200,250);

ps.line_to(280,250);

agg::conv_stroke<agg::path_storage,agg::vcgen_markers_term>csps(ps);

agg::conv_marker<agg::vcgen_markers_term,agg::arrowhead>arrow(csps.markers(),ah);

ras.add_path(csps);

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

ras.add_path(arrow);

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

时间: 2024-10-12 16:49:11

agg::vcgen_markers_term和简单的箭头描绘的相关文章

skyline应用-简单态势箭头

TE提供了普通类型箭头的样式,可以进行日常应用,在态势里,箭头有多种样式 还有双头的箭头等效果,需要按照一定的算法进行计算,在TE里按照Polygon的方式进行勾画, 具体的效果图如下: 具体的技术细节,有需求可进行沟通.

(转)用AGG实现高质量图形输出(二)

本文上接<用AGG实现高质量图形输出(一)>,分别介绍了AGG显示流程中的各个环节. 上次讲了AGG的显示原理并举了一个简单的例子,这一篇文章开始讲AGG工作流程里的每个环节.为了方便对照,再放一次AGG显示流程 图 另外,上一篇文章里的例程也很重要,后面的例子都将基于这个代码. 下面,我们来考察AGG显示流程中的每个环节.理解每个环节最好的方法是编写实验代码,建议先参照这里建 立一个可以运行的AGG实验环境. 顶点源(Vertex Source) 顶点源是一种可以产生多边形所需要的“带命令的

agg::ellipse画圆(扩展)

引言:在刚开始的时候对agg::conv_stroke不了解,认为她与agg::conv_dash是一路的货色,并且分别代表实线和虚线,其实不然,agg::conv_stroke此类存储线的位置,宽度,线端点形状,线连接方式等信息  ,通过使用虚线渲染圆,充分理解了,她们之间如何配合使用. 小节一:虚线的使用方法 例子如下:     //Vertex Source顶点源,我更喜欢称之为端点集合,或者点集合矩阵     //第一个参数是圆形圆心的X坐标,第二个参数是圆形圆心的Y坐标     //第

AGG第二十一课 agg::conv_contour 扩展轮廓线

1前言 轮廓线就是图形的边界,任何封闭的顶点源跳过agg::conv_stroke阶段,将会描绘实心的图形,填充的颜色和边界保持一致.如果不封闭的顶点源一旦跳过agg::conv_stroke就什么也不绘制.agg::conv_stroke就是用来描绘图形边界的. 和agg::trans_affine对比可知,agg::conv_contour是扩展图形的轮廓线,通俗一点就是拓展图形的边界,对图形的边界进行放缩(但是和agg::trans_affine仿射变换不同,这是中心位置不变的缩放). 2

es6中箭头函数

//简单来说 箭头函数就是匿名函数的一种缩写方式 唯一的区别在于 箭头函数的this指向指向就是当前函数直接父类 而匿名函数中则不一定. var time = 332; var obj = { time:232424234, showMess:function(){ var l = function(){ return this.time; } return l; } } undefined obj.showMess()() 332 var time = 332; var obj = { tim

ES6 — 箭头函数

一 为什么要有箭头函数 我们在日常开发中,可能会需要写类似下面的代码 const Person = { 'name': 'little bear', 'age': 18, 'sayHello': function () { setInterval(function () { console.log('我叫' + this.name + '我今年' + this.age + '岁!') }, 1000) } } Person.sayHello() 上例的输出结果是什么呢?可能对javascript

2、Es常用语法 箭头函数、类

1.箭头函数 什么是箭头函数 箭头函数的语法非常简单,看一下最简单的箭头函数表示法 () => console.log('Hello') () => {console.log('Hello')} 等同于 function(){ console.log('hello') } 箭头函数里的this: 箭头函数里的this指向定义时的作用域 普通函数里的this指向调用者的作用域 箭头函数不绑定arguments let arrowfunc = () => console.log(argume

Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6

书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说白了其实是懒得用OpenGL写画几何体代码,画线,AA什么的. 不管怎么说,介绍看的是这篇文章. http://www.cnblogs.com/yanhuiw/p/3885144.html 提到了3个矢量库,因为墙的原因,google的Skia死活弄不下来,所以只写前两个. 首先是AGG,http:

[转载] nosql 数据库的分布式算法

原文: http://juliashine.com/distributed-algorithms-in-nosql-databases/ NoSQL数据库的分布式算法 On 2012年11月9日 in 也为稻粱故, by Juliashine 本文译自 Distributed Algorithms in NoSQL Databases 系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性.这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去