Author Archives: Zevan

Bezier Intersections (not a snippet)

CLICK HERE TO COPY
Actionscript:

var resolution:Number = .03;

var pointNum:int = Math.ceil(1 / resolution);

 

var bezA:Array = new Array();

populateArray(bezA);

var a:Sprite = dot(100, 200);

var b:Sprite = dot(200, 100);

var c:Sprite = dot(300, 200);

 

var bezB:Array = new Array();

populateArray(bezB);

var d:Sprite = dot(300, 100, 0xCCCC00);

var e:Sprite = dot(120, 130, 0xCCCC00);

var f:Sprite = dot(200, 300, 0xCCCC00);

 

addEventListener(Event.ENTER_FRAME, onLoop);

function onLoop(evt:Event):void {

      with(graphics){

      [...]

Posted in Math, bezier | Tagged , | Leave a comment

Line Intersection Part 2 (optimized)

CLICK HERE TO COPY
Actionscript:

// optimized line to line intersection test:

// from wikipedia: http://en.wikipedia.org/wiki/Line-line_intersection

// and http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/

var ip:Point = new Point();

 

function intersection(p1:Sprite, p2:Sprite, p3:Sprite, p4:Sprite):Point {

    var nx:Number, ny:Number, dn:Number;

    var x4_x3:Number = p4.x - p3.x;

    var y4_y3:Number = p4.y - p3.y;

    var x2_x1:Number = p2.x - p1.x;

    var y2_y1:Number = p2.y [...]

Posted in Math, misc | Tagged , | Leave a comment

Line Intersection Part 1 (unoptimized)

CLICK HERE TO COPY
Actionscript:

// completely unoptimized line to line intersection test:

// from wikipedia: http://en.wikipedia.org/wiki/Line-line_intersection

function intersection(p1:Sprite, p2:Sprite, p3:Sprite, p4:Sprite):Point {

    var nx:Number, ny:Number, dn:Number;

    nx = (p1.x * p2.y - p1.y * p2.x) * (p3.x - p4.x) - (p1.x - p2.x) * (p3.x * p4.y - p3.y * p4.x);

    dn = (p1.x - [...]

Posted in Math, misc | Tagged , | Leave a comment

Slow Line Drawing

CLICK HERE TO COPY
Actionscript:

var canvas:BitmapData = Bitmap(addChild(new Bitmap(new BitmapData(400, 400, false, 0x000000)))).bitmapData;

 

function line(x1:Number, y1:Number, x2:Number, y2:Number, res:int=10):void{

    var dx:Number = x2 - x1;

    var dy:Number = y2 - y1;

    var dist:Number = Math.sqrt((dx * dx) + (dy * dy));

    var step:Number = 1 / (dist / res);

    for (var i:Number [...]

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