Naginata
Helsinki
2010-02-07
09Hannan-ja-Esan-haat.20100822.131652.703Somero2002_02italia2005-05_131Jodo-Pori.2010-07-17Oslo
2010-12-04Kyoto
2011-05-04
Shimogamo
Jinja,
Ryukyu
Kobujutsu
- Bo
kumiteKobujutsu
Stadion
2011-12-17
2South.Africa.Roadtrip.2007-08_216Hannan-ja-Esan-haat.20100821.180134.503norge5oslo_169Japan
2010-04-04Slovenija
2010-11
015Nanbudo_Norge2007-12_038Saaristoleiri
2009-08
34italia2005-04_219Inujima,
Japan
2010-04-30Kuortti.2010-06-26Vesa-Rauttu-60v_1899Nanbudo_Norge2007-12_211Minatogawa
Jinja,
Kobe
2011-06-20Jikishinkageryu
Naginatajutsu
in Hyogo
Kenritsu
Budokan,
Himeji
2011-05-29
Kyudojo is that way

The training hall of Kyudo (弓道) in Osaka Castle Park (大阪城公園) is that way.

Noises in BitmapData

Two examples for the noise functions in BitmapData class of Actionscript 3, noise() and perlinNoise().

/**
 * @mxmlc -target-player=10.0.0
 */
package
{
    import flash.display.*;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.ui.Keyboard;
   
    [SWF(backgroundColor = '0x668822', frameRate = '33', width = '600', height = '400')]
   
    public class NoiseTest extends Sprite
    {
        private var _bm:Bitmap;
        private var _field:TextField;
        private var _noise:Object = {
            randomSeed: 3,
            low: 60,
            high: 180,
            channelOptions: 7,
            grayScale: false
        };
       
        public function NoiseTest()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
           
            loaderInfo.addEventListener(Event.INIT, onInit);
        }
       
        private function onInit(event:Event):void
        {
            var m:uint = 60;
            var w:uint = Math.round(stage.stageWidth);
            var h:uint = Math.round(stage.stageWidth - m);
           
            _bm = new Bitmap(new BitmapData(w, h, true, 0x00121212));
            _bm.y = m;
            addChild(_bm);
           
            var format:TextFormat = new TextFormat("Verdana", 12, 0x121212);
            _field = new TextField();
            _field.defaultTextFormat = format;
            _field.multiline = true;
            _field.wordWrap = true;
            _field.background = true;
            _field.width = w;
            _field.height = m;
            addChild(_field);
           
            stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
            updateNoise();
        }
       
        private function onKeyUp(event:KeyboardEvent):void
        {
            trace(event.keyCode);
            switch(event.keyCode)
            {
                case Keyboard.UP :
                    _noise.low += 1;
                    break;
                case Keyboard.DOWN :
                    _noise.low -= 1;
                    break;
                   
                case Keyboard.PAGE_UP :
                    _noise.high += 1;
                    break;
                case Keyboard.PAGE_DOWN :
                    _noise.high -= 1;
                    break;
                   
                case Keyboard.HOME :
                    _noise.randomSeed += 1;
                    break;
                case Keyboard.END :
                    _noise.randomSeed -= 1;
                    break;
               
                case 71 : // g
                    _noise.grayScale = !Boolean(_noise.grayScale);
                    break;
                   
                case Keyboard.F1 :
                    _noise.channelOptions = BitmapDataChannel.RED; // 1
                    break;
                case Keyboard.F2 :
                    _noise.channelOptions = BitmapDataChannel.GREEN; // 2
                    break;
                case Keyboard.F3 :
                    _noise.channelOptions = BitmapDataChannel.BLUE; // 4
                    break;
                case Keyboard.F4 :
                    _noise.channelOptions = BitmapDataChannel.RED | BitmapDataChannel.GREEN;
                    break;
                case Keyboard.F5 :
                    _noise.channelOptions = BitmapDataChannel.GREEN | BitmapDataChannel.BLUE;
                    break;
                case Keyboard.F6 :
                    _noise.channelOptions = BitmapDataChannel.RED | BitmapDataChannel.BLUE;
                    break;
                case Keyboard.F7 :
                    _noise.channelOptions = BitmapDataChannel.RED |
                        BitmapDataChannel.GREEN | BitmapDataChannel.BLUE; // 7
                    break;
            }
           
            updateNoise();
        }
       
        private function updateNoise():void
        {
            _bm.bitmapData.noise(
                _noise.randomSeed, _noise.low, _noise.high,
                _noise.channelOptions, _noise.grayScale
            );
           
            var texts:Array = [];
            for (var key:String in _noise)
            {
                texts.push(key + ":" + _noise[key]);
            }
            _field.text = texts.join(", ");
        }
    }
}

Perlin noise

/**
 * @mxmlc -target-player=10.0.0
 */
package
{
    import flash.display.*;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.ui.Keyboard;
   
    [SWF(backgroundColor = '0x668822', frameRate = '33', width = '600', height = '400')]
   
    public class PerlinNoiseTest extends Sprite
    {
        private var _bm:Bitmap;
        private var _field:TextField;
        private var _noise:Object = {
            baseX: 20,
            baseY: 20,
            numOctaves: 4,
            randomSeed: 3,
            stitch: true,
            fractalNoise: false,
            channelOptions: 7,
            grayScale: false
        };
       
        public function PerlinNoiseTest()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
           
            loaderInfo.addEventListener(Event.INIT, onInit);
        }
       
        private function onInit(event:Event):void
        {
            var m:uint = 60;
            var w:uint = Math.round(stage.stageWidth);
            var h:uint = Math.round(stage.stageWidth - m);
           
            _bm = new Bitmap(new BitmapData(w, h, true, 0x00121212));
            _bm.y = m;
            addChild(_bm);
           
            var format:TextFormat = new TextFormat("Verdana", 12, 0x121212);
            _field = new TextField();
            _field.defaultTextFormat = format;
            _field.multiline = true;
            _field.wordWrap = true;
            _field.background = true;
            _field.width = w;
            _field.height = m;
            addChild(_field);
           
            stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
            updateNoise();
        }
       
        private function onKeyUp(event:KeyboardEvent):void
        {
            trace(event.keyCode);
            switch(event.keyCode)
            {
                case Keyboard.UP :
                    _noise.baseY += 1;
                    break;
                case Keyboard.DOWN :
                    _noise.baseY -= 1;
                    break;
                case Keyboard.RIGHT :
                    _noise.baseX += 1;
                    break;
                case Keyboard.LEFT :
                    _noise.baseX -= 1;
                    break;
                   
                case Keyboard.PAGE_UP :
                    _noise.numOctaves += 1;
                    break;
                case Keyboard.PAGE_DOWN :
                    _noise.numOctaves -= 1;
                    break;
                   
                case Keyboard.HOME :
                    _noise.randomSeed += 1;
                    break;
                case Keyboard.END :
                    _noise.randomSeed -= 1;
                    break;
                   
                case 83 : // s
                    _noise.stitch = !Boolean(_noise.stitch);
                    break;
                case 70 : //  f
                    _noise.fractalNoise = !Boolean(_noise.fractalNoise);
                    break;
                case 71 : // g
                    _noise.grayScale = !Boolean(_noise.grayScale);
                    break;
                   
                case Keyboard.F1 :
                    _noise.channelOptions = BitmapDataChannel.RED; // 1
                    break;
                case Keyboard.F2 :
                    _noise.channelOptions = BitmapDataChannel.GREEN; // 2
                    break;
                case Keyboard.F3 :
                    _noise.channelOptions = BitmapDataChannel.BLUE; // 4
                    break;
                case Keyboard.F4 :
                    _noise.channelOptions = BitmapDataChannel.RED | BitmapDataChannel.GREEN;
                    break;
                case Keyboard.F5 :
                    _noise.channelOptions = BitmapDataChannel.GREEN | BitmapDataChannel.BLUE;
                    break;
                case Keyboard.F6 :
                    _noise.channelOptions = BitmapDataChannel.RED | BitmapDataChannel.BLUE;
                    break;
                case Keyboard.F7 :
                    _noise.channelOptions = BitmapDataChannel.RED |
                        BitmapDataChannel.GREEN | BitmapDataChannel.BLUE; // 7
                    break;
            }
           
            updateNoise();
        }
       
        private function updateNoise():void
        {
            _bm.bitmapData.perlinNoise(
                _noise.baseX, _noise.baseY,
                _noise.numOctaves, _noise.randomSeed,
                _noise.stitch, _noise.fractalNoise,
                _noise.channelOptions, _noise.grayScale
            );
           
            var texts:Array = [];
            for (var key:String in _noise)
            {
                texts.push(key + ":" + _noise[key]);
            }
            _field.text = texts.join(", ");
        }
    }
}

I encourage anyone scrolling this far to browse the API documentation of the latest versions of Flex and Flash, as you can always find something new.

NoiseTest.swf

PerlinNoiseTest.swf

Time: 07/08/2009 23:55

QR code for paazio.nanbudo.fi