Actionscript 3 ActionScript梯度带状问题

Actionscript 3 ActionScript梯度带状问题,actionscript-3,gradient,Actionscript 3,Gradient,我有一个奇怪的问题,在渐变的某些颜色之间有条带 为了创建渐变,我从中心到边界绘制等距的圆楔,并从循环中的位图线渐变像素填充每个圆楔 我正在创建一个带有3600个楔子的圆,尽管它看起来不像是基于从红色到黄色数字渐变而成的橙色屏幕截图。在红色和黄色之间添加橙色数字没有帮助。但是如果我用360个楔子创建一个圆,渐变条带会更明显。3600可能有些过分了,并没有增加更多的细节,比如说,制作1440个楔子的圆,但我不知道有什么其他方法可以稍微提高这个带状问题 你知道我该怎么解决这个问题,或者我做错了什么吗?

我有一个奇怪的问题,在渐变的某些颜色之间有条带

为了创建渐变,我从中心到边界绘制等距的圆楔,并从循环中的位图线渐变像素填充每个圆楔

我正在创建一个带有3600个楔子的圆,尽管它看起来不像是基于从红色到黄色数字渐变而成的橙色屏幕截图。在红色和黄色之间添加橙色数字没有帮助。但是如果我用360个楔子创建一个圆,渐变条带会更明显。3600可能有些过分了,并没有增加更多的细节,比如说,制作1440个楔子的圆,但我不知道有什么其他方法可以稍微提高这个带状问题

你知道我该怎么解决这个问题,或者我做错了什么吗?它可能是由环形矩阵旋转引起的吗


我认为这是由你的比率造成的

试试这个:

graphics.beginGradientFill(GradientType.LINEAR, [nColor, nColor], [1, 1], [0, 255], objMatrix)
另外,objMatrix实际上应该是circleMatrix吗

您可以在编辑中看到[127255]和[0255]之间的差异:

由于精度错误,可能会出现一些伪影,因为您只有255个值的范围可以分布

为了最小化这种视觉效果,您可以尝试向色带添加一些模糊,但要注意左右两侧的连接:

//...

//Assign bitmapData to the leftToRightLine
var leftToRightLineBitmapData:BitmapData = 
                   new BitmapData(leftToRightLine.width,leftToRightLine.height);
leftToRightLineBitmapData.draw(leftToRightLine);

// add some blur filter to the color band
leftToRightLine.filters=[new BlurFilter(2,0, 3)];

// copy the color band on the bitmap but but starting at 1 pixel right to avoid
// the blur on the start
leftToRightLineBitmapData.draw(leftToRightLine, new Matrix(1,0,0,1, 1));

for(var i:int = 1; i < (DEFAULT_BANDING_QUALITY + 1); i++)
{
  //...
/。。。
//将位图数据指定给leftToRightLine
变量leftToRightLineBitmapData:BitmapData=
新位图数据(leftToRightLine.width、leftToRightLine.height);
leftToRightLineBitmapData.draw(leftToRightLine);
//向色带添加一些模糊过滤器
filters=[新的模糊过滤器(2,0,3)];
//复制位图上的色带,但从右1像素开始,以避免
//开始时的模糊
draw(leftToRightLine,新矩阵(1,0,0,1,1));
对于(变量i:int=1;i<(默认带状质量+1);i++)
{
//...

没有完整的代码进行测试,很难知道我的目标是否正确;)

  • 弧度转换中有一个错误,它是
    i*Math.pi/180
    而不是/1800,因此现在您可以转到
    360
    而不是
    3600
  • 为什么从1开始而不是从0开始

  • 尝试使用线条粗细并使用lineGradientStyle

  • 您引用了一个
    objMatrix
    ,但创建了一个
    circleMatrix


不得不编辑一些复制粘贴错误我已经编辑了我的代码以显示所有内容。希望你能帮助我找出错误谢谢。我希望不必使用过滤器,但它确实起到了作用。我没有将其添加到位图中,而是在整个精灵上添加了一个2px 2px过滤器。此外,我还减少了默认的带状q到720,因为它看起来与3600相同,但加载速度更快。基于您提到的这个限制,我假设它们看起来是相同的?您能解释一下255的分布范围限制,以及实际发生的情况吗?比率是从中心向外的。我已经更新了代码,以便您能够完全理解它。