This is based on Danny Codicek's Mathematics & Physics for programmers, and i'm feeling very stupid right now.

From what i can tell, the book describes the function as such:
rotatedX = Math.sqrt(originalx*originalx+originaly*originaly)*Math.sin(angle-Math.atan2(originaly,originalx))
and the same for rotatedY

My implementation is this:

import flash.geom.Point;
function Triangle(p1:Point,p2:Point,p3:Point){
   this.p1 = p1;
   this.p2 = p2;
   this.p3 = p3;
   this.update = function(){
       this.clip = _root.container.createEmptyMovieClip("triangle",1);
       with(this.clip){
           beginFill(0xFF0000);
           moveTo(p1.x,p1.y);
           lineTo(p2.x,p2.y);
           lineTo(p3.x,p3.y);
           lineTo(p1.x,p1.y);
           endFill();
       }
   }
   this.update();
}

function rotateTriangle(triangle:Object,angle:Number){
   var rad:Number = angle*(Math.PI/180);
   for(var i = 3;i--;){
       var p = triangle["p"+(i+1)];
       var py:Number = Math.sqrt(p.x*p.x+p.y*p.y);
       var np:Point = new Point();
       np.x = dist*Math.cos(rad-Math.atan2(p.y,p.x));
       np.y = dist*Math.sin(rad-Math.atan2(p.y,p.x));
       triangle["p"+(i+1)].x = np.x;
       triangle["p"+(i+1)].y = np.y;
   }
   triangle.update();
}

var t1:Object = new Triangle(new Point(10,10),new Point(40,40),new Point(10,40));
rotateTriangle(t1,45);

This isn't working very well: I'm not sure wether "angle" should be angles or radians, since either gives off-kilter results and radians gives the least freakishness, but what happens is on every other update the triangle gets mirrored rather than rotated.

Could someone with stronger cerebral capacity than me have a look at my function, figure it out and explain where i went wrong? The more i look at it the less i understand why it flips every other update.

- A
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to