Показать сообщение отдельно
Старый 28.11.2006, 19:26
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 26  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
Цитата:
Сообщение от 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));
	}
}
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.