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);
    	}
    }
    
  • 相关阅读:
    10 个迅速提升你 Git 水平的提示
    GitLab-CI与GitLab-Runner
    WEB应用安全解决方案测试验证
    sparse representation 与sparse coding 的区别的观点
    The Ph.D. Grind
    Potential Pythonic Pitfalls
    Overfitting & Regularization
    LVM的一般操作过程
    你跟大牛之间仅仅差一个google
    Hadoop伪分布式模式部署
  • 原文地址:https://www.cnblogs.com/602147629/p/2020569.html
Copyright © 2011-2022 走看看