Цитата:
Сообщение от 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 ходил не по прямой или туда-сюда, а по кругу или эллипсу (если линейные размеры битмапдаты разные по горизонтали и вертикали), или любой гладкой кривой, но так чтобы не выезжал за пределы битмапдаты - т.е. это может быть даже случайный алгоритм, лишь бы гладкий путь был, ограниченный так, чтобы прямоугольник всегда был в рамке битмапдаты...)))