封闭填充实体另一种颜色渲染边框

绘制封闭图形时,采用一种颜色填充,然后采用另一个颜色描绘边框

操作步骤:

1 直接渲染顶点源

2 通过agg::conv_stroke提取顶点源的轮廓线

3 采用另一种颜色描绘轮廓线

实例代码:

agg::ellipse ell(200,200,50,100);

ras.add_path(ell);

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

ras.reset();

agg::conv_stroke<agg::ellipse> stroke(ell);

ras.add_path(stroke);

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

ras.reset();

同样可以调整看看如果先画轮廓线,再填充的效果:

agg::ellipse ell(200,200,50,100);

agg::conv_stroke<agg::ellipse> stroke(ell);

ras.add_path(stroke);

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

ras.reset();

ras.add_path(ell);

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

ras.reset();

分析:为什么第一种方法有效,第二种无效!!其实填充颜色的时候,连带边界一起渲染的,如果填充颜色放在后面,肯定连边界也重新渲染一遍,所以轮廓线的颜色就没有了!!

时间: 2024-11-05 15:50:08

封闭填充实体另一种颜色渲染边框的相关文章

Android 颜色渲染(十) ComposeShader组合渲染

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Android 颜色处理(十) ComposeShader组合渲染 public ComposeShader(Shader shaderA,Shader shaderB, Xfermode mode) Parameters shaderA 渲染器A,Shader及其子类对象 shaderB 渲染器B,Shader及其子类对象 mode  两种渲染器组合的模式,Xfermode对象 public ComposeShader(S

NeHe OpenGL教程 第三课:颜色渲染

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. 第三课:颜色渲染 添加颜色: 作为第二课的扩展,我将叫你如何使用颜色.你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色. 上一课中我教给您三角形和四边形的绘制方法.这一课我将教您给三角形和四边形添加2种不同类型的着色方法.使用F

几种卡通渲染方法的解析

代码全部出自RenderMonkey的样例文件NPR.rfx,下载地址: http://developer.amd.com/tools-and-sdks/archive/games-cgi/rendermonkey-toolsuite/ 龙书上讲的卡通渲染的方法一直没有看懂,两个faceNormal一直不明白是怎么算出来的 =_=||| ,看了其他DX sample,只看到有计算切法线之类的,也并没有看到能计算"临近边"的法线的...而且也想不通如果一个顶点被很多人公用的话怎么想都没法

Android 颜色渲染(三) Shader颜色渲染

版权声明:本文为博主原创文章,未经博主允许不得转载. 相信看过在上一篇中提到的三篇文章后,大家已经对颜色处理方面有更深的体会. 之前讲到颜色渐变的效果, 具体怎么做呢,这就需要应用颜色渲染. 首先要介绍Android Api中关于颜色渲染的几个重要的类:    Shader,BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient 看一下它们之间的关系:  public class Shader extends 

几种颜色模型的转换公式

在做图像处理时,我们一般采用的是RGB空间,但是在某些特殊情况下,我们也会用到其他的颜色空间.本文主要介绍一些常见的颜色空间的概念和转换公式. 颜色的实质是一种光波.它的存在是因为有三个实体:光线.被观察的对象以及观察者.人眼是把颜色当作由被观察对象吸收或者反射不同波长的光波形成的.例如,当在一个晴朗的日子里,我们看到阳光下的某物体呈现红色时,那是因为该物体吸收了其它波长的光,而把红色波长的光反射到我们人眼里的缘故.当然,我们人眼所能感受到的只是波长在可见光范围内的光波信号.当各种不同波长的光信

css如何实现一个文字两种颜色代码实例

css如何实现一个文字两种颜色代码实例:在实际应用中可能需要设置文本效果比较炫酷.有一种效果就是将一个文字设置为两种颜色,使用普通的方法肯定是无法实现.下面就分享一下实现此功能的代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/&qu

一种颜色怎么搭配

一种颜色尽可能的避免,一种色单调,刻板,如果一定使用一种颜色有以下几种方法使看起比较丰富: 1.加图案: 把其中的一个换成有关颜色的并且带图案的 比如,红色的上班群套装,配上红白花的衬衫 2.调深浅 上衣深灰色,中灰的腰带,浅灰的群,更深灰的鞋 3.换面料 婚纱(新娘装),面料变了,折光度变了,颜色也就丰富了 4.加配饰 小西装,加丝巾,丝巾上有图案,面积小也不影响主色调

布局填充器的三种写法

布局填充器的三种写法:  1.layoutInflater=layoutInflater.from(this);  2.layoutInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);  3.layoutInflater=this.getLayoutInflater();

Android 颜色渲染(九) PorterDuff及Xfermode详解

版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前,  由于构造ComposeShader需要 PorterDuffXfermode或者PorterDuff.Mode作为参数,所以在此先详细地了解下这两个类的作用,这对之后的绘图会有很大的帮 助: 在讲具体的使用之前补充一点知识,这就是 Proter