//cos(A+B)=cosAcosB-sinAsinB; //sin(A+B)=sinAcosB+cosAsinB; cos(a+b)=s/r; s=r*cos(a+b); s=r*cos(a)cos(b)-r*sin(a)sin(b); cos(a)=x/r; x=r*cos(a); sin(a+b)=t/r; t=r*sin(a+b); t=r*sin(a)cos(b)+r*cos(a)sin(b); sin(a)=y/r; y=r*sin(a); x=r*cos(a); y=r*sin(a); s=r*cos(a)cos(b)-r*sin(a)sin(b); t=r*sin(a)cos(b)+r*cos(a)sin(b); s=x*cos(b)-y*sin(b);//p'.x=p.x*cos(b)-p.y*sin(b); t=y*cos(b)+x*sin(b);//p'.y=p.y*cos(b)+p.x*sin(b);
var ball:Ball = new Ball(10); var centerX:Number = stage.stageWidth / 2; var centerY:Number = stage.stageHeight / 2; var radius:Number = 50; var angle:Number = 0; //旋转角速度 ball.vr = 0.02; //反向旋转只需要变为负数 //ball.vr = -0.02; ball.x = centerX + radius; ball.y = centerY; var cos:Number = Math.cos(ball.vr); var sin:Number = Math.sin(ball.vr); addChild(ball); addEventListener(Event.ENTER_FRAME,EnterFrameHandler); graphics.lineStyle(1,0x999999); graphics.moveTo(ball.x,ball.y); var i:Number = 0; function EnterFrameHandler(e:Event):void { var dx:Number = ball.x - centerX; var dy:Number = ball.y - centerY; var x2:Number = cos * dx - sin * dy; var y2:Number = cos * dy + sin * dx; ball.x = centerX + x2; ball.y = centerY + y2; i++; if (i<=(2*Math.PI+ball.vr)/ball.vr) { trace(i); graphics.lineTo(ball.x,ball.y); } }