zoukankan      html  css  js  c++  java
  • 坐标旋转

    //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);
    	}
    }
    
  • 相关阅读:
    lightoj1422_区间dp
    hdu4283_动态规划
    51nod1201_dp思维题
    uestc1218_变形01背包
    hdu5492_枚举dp
    hdu3507_斜率dp
    hdu 1116 Play on Words
    并查集专题
    uva 10160
    uva 572
  • 原文地址:https://www.cnblogs.com/602147629/p/2020569.html
Copyright © 2011-2022 走看看