Цитата:
|
Сообщение от vapes
теперь вопрос:как избежать повторения пикселов?
|
Если я правильно понял задачу, то я бы сделал так:

Код:
// массив с точками
var ar:Array = new Array();
// размеры картинки
var bitmapWidth:Number = 100;
var bitmapHeight:Number = 100;
// собираем в массив координаты всех точек
for (var i:Number=0; i<bitmapHeight; i++) {
for (var j:Number=0; j<bitmapWidth; j++) ar.push(new Point(j, i));
}
// перетасовываем массив по алгоритму Fisher-Yates
var a:Number = ar.length;
var b:Point, c:Number;
while(a--) {
c = Math.floor(Math.random()*(a+1));
b = ar[c];
ar[c] = ar[a];
ar[a] = b;
};
// Тестируем что получилось
// Сделаем текстовые картинки
var myBitmapData:BitmapData = new BitmapData(bitmapWidth, bitmapHeight, false, 0xFF0000);
var resultBitmapData:BitmapData = new BitmapData(bitmapWidth, bitmapHeight, false, 0xFF);
addChild(new Bitmap(resultBitmapData))
// выводим случайные точки по enterFrame
addEventListener(Event.ENTER_FRAME, onDraw);
function onDraw(e:Event):void {
var n:int = 200; // выводим 200 точек
while (n-- && ar.length) {
// берем следующую точку
var pixel:Point = ar.pop();
// рисуем ее
trace("Draw:", pixel.x, pixel.y);
resultBitmapData.setPixel(pixel.x, pixel.y, myBitmapData.getPixel(pixel.x, pixel.y));
}
}