Author Archives: Zevan

Bresenham Circle No Multiplication

CLICK HERE TO COPY
Actionscript:

var canvas:BitmapData = new BitmapData(400, 400, false, 0xCCCCCC);

addChild(new Bitmap(canvas));

 

drawCircle(200,100, 50);

 

// y, y radius, color

function drawCircle(xp:Number,yp:Number, radius:Number, col:uint =0x000000):void {

    var balance:int;

    var xoff:int;

    var yoff:int;

    xoff=0;

    yoff=radius;

    balance=- radius;

 

    while (xoff <= yoff) {

        canvas.setPixel(xp+xoff, yp+yoff, col);

        canvas.setPixel(xp-xoff, yp+yoff, [...]

Posted in BitmapData, graphics algorithms, pixel manipulation, setPixel | Tagged , , , | Leave a comment

Adding Very Large Numbers

CLICK HERE TO COPY
Actionscript:

// tracing out large numbers will go into exponent notation

trace(1000000000000000000000000);

// outputs: 1e+24

 

var a:String =  "1000000000000000000000009";

var b:String = "12000000000000000000000001";

 

// bigAdd function adds two large numbers

trace(bigAdd(a, b));

// outputs: 13000000000000000000000010

 

// unclear what regular addition is doing here:

trace(int(a) + int(b));

// outputs: -3758096384

 

function bigAdd(a:String, b:String):String{

       var answer:String="";

       var carry:int = 0;

    [...]

Posted in Number, misc, string manipulation, strings | Tagged , , , , | 2 Comments

E?

CLICK HERE TO COPY
Actionscript:

trace(Math.pow((1+1/10000000),10000000));

 

trace(Math.E);

 

/*outputs :

 

2.7182816939803724

2.718281828459045

 

*/

E
2.7182818284590452353602874713526624977572470936999595749669676277240766303535
47594571382178525166427427466391932003059921817413596629043572900334295260595630
73813232862794349076323382988075319525101901157383418793070215408914993488416750
92447614606680822648001684774118537423454424371075390777449920695517027618386062
61331384583000752044933826560297606737113200709328709127443747047230696977209310
14169283681902551510865746377211125238978442505695369677078......

Posted in misc, one-liners | Tagged , | Comments closed

Clamp Math.max(Math.min())

CLICK HERE TO COPY
Actionscript:

// this one-liner is good to know:

// Math.max(minValue, Math.min(maxValue, valueToClamp));

 

// wrapped in a function it looks like this:

const MIN:Number = 0;

const MAX:Number = 100;

 

function clamp(val:Number, min:Number = MIN, max:Number = MAX){

    return Math.max(min, Math.min(max, val))

}

 

for (var i:int = 0; i<1000; i++){

    var val:Number = Math.random()*1000 - 500;

    // clamp [...]

Posted in misc, one-liners | Tagged , | 1 Comment