Изменить:
Из-за ошибки точности может появиться артефакт, поскольку у вас есть только 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++)
{
//...
Без полного кода для проверки трудно понять, нацелен ли я в правильном направлении;)
- В преобразовании радиана есть ошибка:
i*Math.pi/180
, а не / 1800 , поэтому теперь вы можете перейти к 360
, а не 3600
почему начинать с 1, а не с 0?
попробуйте поиграть с толщиной линии и используйте линию GradientStyle
Вы ссылаетесь на objMatrix
, но создаете circleMatrix