Показать сообщение отдельно
Старый 14.04.2010, 22:42
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 9  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Он был упадочный и я его убил))))
Короче вот что.
Прямоугольник 30х30 опускается вниз и вправо. Когда он доходит до крайней точки СВОЕЙ точкой 0:0, то в самом прямоугольнике уже ничего нет, это и видится как резкие края. Поэтому я возвращаю его, когда он доходит своей нижней точкой до нижней точки битмапа. Но прикольный адобовский нойз генерится с шагом, равным размеру битмапины, и чтобы шаг рисунка шума совпал, надо доехать до конца))))) Вот такой бред. Я не вижу выхода, потому и удалил, что сказать толком нечего.
ну да, это все мне еще вчера стало понятно, но даже когда в прямоугольнике уже ничего нет и он едет дальше, все равно что-то продолжает генерироваться, но уже нет бесшовной спайки - короче, реально бред какой-то)))

UPD: а еще не совсем понятна мысль из справки: http://help.adobe.com/ru_RU/AS3LCR/F...ay/Bitmap.html

Цитата:
Объект BitmapData можно вызвать на экран объектом Bitmap одним из двух способов: с помощью векторного средства визуализации, такого как фигура, заполненная растровым изображением, или с использованием более быстрой подпрограммы копирования пикселов. Подпрограмма копирования пикселов работает намного быстрее, чем векторное средство визуализации, но объект Bitmap должен соответствовать определенным условиям для его использования.
что это значит? не совсем понял, что это за способы.

а далее в описании свойства pixelSnapping идет:
Цитата:
На внутреннем уровне это значение позволяет показывать изображение с максимальной быстротой с помощью векторного средства визуализации.
что противоречит предыдущей цитате

мозг уже вскипел с этими битмапами и справками(((

Добавлено через 3 часа 51 минуту
Всем дарю!)))

Код AS3:
var rows:uint = 3;
var columns:uint = 4;
 
var channels:uint = 12;
var p:Point = new Point( );
var p2:Point = new Point( );
 
var bmd:BitmapData = new BitmapData(100, 100, true, 0xFFFFFFFF);
 
var bmp:Bitmap;
var str:String = "bmp";
 
for (var i:int = 0; i <  rows * columns; i++)
{	
	bmp = this[str + i] = new Bitmap(bmd);
	addChild(bmp);
 
	bmp.y = bmd.height * int(i / columns);
	bmp.x = bmd.width * int(i % columns);
}
 
var r:int = (100 - 40) / 2;
var p0:Point = new Point(r, r);
var angle:Number = 0;
 
addEventListener(Event.ENTER_FRAME, enterFrameListener);
function enterFrameListener (e:Event):void
{	
	angle += .01;
 
	p.x = p0.x + r * Math.cos(angle);
	p.y = p0.y + r * Math.sin(angle);
 
	p2.x = p0.x - r * Math.cos(angle);
	p2.y = p0.y - r * Math.sin(angle);
 
	bmd.perlinNoise(40, 40, 2, 0, true, false, channels, false, [p, p2]);
}
красиво без магических цифр не оформлял, но идея в том, чтобы прямоугольник из последнего перед этим поста Wolsh-a ходил не по прямой или туда-сюда, а по кругу или эллипсу (если линейные размеры битмапдаты разные по горизонтали и вертикали), или любой гладкой кривой, но так чтобы не выезжал за пределы битмапдаты - т.е. это может быть даже случайный алгоритм, лишь бы гладкий путь был, ограниченный так, чтобы прямоугольник всегда был в рамке битмапдаты...)))
__________________
скриптограф


Последний раз редактировалось orcpochta; 15.04.2010 в 02:42.