实心圆交界黑色边问题

详细代码:

void TestBlackBorden()

{

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_solid<renderer_base_type> renderder_scanline_type;

renderder_scanline_type rensl(renb);

agg::rasterizer_scanline_aa<> ras;

agg::scanline_u8 sl;

ras.reset();

/*

尝试设置gamma的值,但是无效,反而翻转y轴看到黑色边消失了!!

*/

ras.gamma(agg::gamma_power(2.5));

ras.add_path(agg::ellipse(100,150,100,100));

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

ras.add_path(agg::ellipse(200,100,100,100));

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

ras.add_path(agg::ellipse(200,200,100,100));

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

}

如下是作者的描述:

I only flipped your image horizontally. It shows how the colortriplets are

placed and explains this effect. But you are right, these"black borders"

will be seen on any device. To get rid of them you need to use gamma

correction. See examples/gamma_correction.cpp.

按照作者的思路进行了gamma的设置,当然不排除设置的错误,没有理解gamma_correction这个例子。

开发者回应:

For my display a gamma of 2.5 looks good. I think I will add someuser

defined gamma option to my application. By time i will have to delve

into this topic more deeply.

时间: 2024-08-25 10:03:29

实心圆交界黑色边问题的相关文章

html5 &lt;canvas&gt;第二篇 strokeRect strokeStyle() strokeStyle() createLinearGradient addColorStop 用法 实心圆,空心圆,渐变

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <link href="css.css" rel="stylesheet" type="text/css

cocos2d-x 实心圆

找到项目libcocos2d->draw_nodes->CCDrawingPrimitives.cpp将 glDrawArrays(GL_LINE_STRIP, 0, (GLsizei) segments+additionalSegment); 改为glDrawArrays(GL_TRIANGLE_FAN, 0, (GLsizei) segments+additionalSegment);就能实现实心圆.

C# 画个实心圆

Graphics dc = listView1.CreateGraphics(); Pen redpen = new Pen(Color.Red, 2); dc.DrawEllipse(redpen, 0, 100, 50, 50);像这个画的是个空心的圆,我想画个实心的该怎么弄啊?? 回答: 用Brush填充,不用Pen如System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.

css3画实心圆

设置border-radius的值为width和height的1/2: 例子如下: #circle { width: 200px; height: 200px; background-color: #a72525; -webkit-border-radius: 100px; -moz-border-radius:100px;border-radius:100px; } 可以用border属性设置边框样式 例如: border: 5px solid #dedede;

012 列表

列表: 有序列表代码示例: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <ol type="A" start="3"> <!--有序列表 ul无序列表--> 因为type=A,所以从C开始 <li

canvas之画圆

<canvas id="canvas" width="500" height="500" style="background-color: yellow;"></canvas> 1 var canvas=document.getElementById("canvas"); 2 var cxt=canvas.getContext("2d"); 3 //画一个空心圆

iOS Quartz2D绘制线、矩形、弧、圆、文字、图片

利用Quartz2D中提供的图层上下文 Layer Graphics Context,进行简单绘制线.矩形.弧.圆.文字.图片 在storyBoard中得拖入控制器,添加多个UIView控件,并把各个UIView的class修改为自定义的类. 如: 绘制线: // // HJLineView.m // 画线三角矩形圆 // // Created by HJiang on 15/1/2. // Copyright (c) 2015年 HJiang. All rights reserved. //

CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等

  1.长方形 #Rectangle{ width: 200px; height: 50px; background-color: red; color: white; text-align: center; } 2.正方形 #square{ width: 200px; height: 200px; background-color: red; color: white; text-align: center; } 3.实心圆 #perfect-circle{ width: 200px; hei

用HTML5canvas绘制一个圆环形的进度表示

先看一下画出来的效果,如下图,这样一个圆环形的进度.  我这里使用HTML5的Canvas来要制作这样一个圆环形的进度, 首先是HTML页面,HTML5的文档标识是: <!DOCTYPE html> 这个文档标识要比HTML4的简单多了. 第二步,在页面上创建一个Canvas画布元素: <canvas class="process" width="48px" height="48px">61%</canvas>