In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Blobby test

Get Adobe Flash player
by tjoen 08 Jul 2010
    Embed
/**
 * Copyright tjoen ( http://wonderfl.net/user/tjoen )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/tokh
 */

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.geom.Utils3D; 
    import flash.geom.Vector3D;    
    import flash.geom.Matrix3D;
    import flash.geom.Point;
    import flash.filters.*;
    
    public class FlashTest extends Sprite {
        public function FlashTest() {
            // just a test
var matrix:Matrix3D = new Matrix3D();
var verts:Vector.<Number> = new Vector.<Number>();
var pVerts:Vector.<Number> = new Vector.<Number>();
var uvts:Vector.<Number> = new Vector.<Number>();
for (var i:Number = -2; i<2; i+=.04) {
    for (var j:Number = -2; j<2; j+=.04) {
        for (var k:Number = -2; k<2; k+=.04) {
            // blobby, from here www.iiit.net/techreports/ImplicitTR.pdf
var s:Number=i*i+j*j+k*k+Math.sin(4*i)-Math.cos(4*j)+Math.sin(4*k)-1;
            if (s<0&&s>-.2) {
                verts.push(i * 60);
                verts.push(j * 60);
                verts.push(k * 60);
                pVerts.push(0),pVerts.push(0);
                uvts.push(0),uvts.push(0),uvts.push(0);
            }
        }
    }
}
var brush:BitmapData=new BitmapData(3,2,true,0x41FF0000);
var canvas:BitmapData=new BitmapData(465,465,false,0x000000);
addChild(new Bitmap(canvas));
var dx:Number=0;
var dy:Number=0;
addEventListener(Event.ENTER_FRAME, onLoop);
function onLoop(evt:Event):void {
    dx += (mouseX - dx)/4;
    dy += (mouseY - dy)/4;
    matrix.identity();
    matrix.appendRotation(dy,Vector3D.X_AXIS);
    matrix.appendRotation(dx,Vector3D.Y_AXIS);
    matrix.appendTranslation(200, 200, 0);
    Utils3D.projectVectors(matrix, verts, pVerts, uvts);
    canvas.lock();
    canvas.fillRect(canvas.rect, 0x000000);
    var p = new Point();
    for (var i:int = 0; i<pVerts.length; i+=2) {
        p.x = pVerts[i];
        p.y = pVerts[i+1];
        canvas.copyPixels(brush, brush.rect, p, null, null, true);
    }
    canvas.unlock();
}
     
        }
    }
}