速度向量之角速度

角度速度是指物体设着某一个角动进行运动

 

源码

// 获取到舞台
             var canvas=document.getElementById("stage");
             // 舞台2d绘图接口
             var context=canvas.getContext("2d");
             // 获取中心点置
             var centerX=canvas.width/2;
             var centerY=canvas.height/2;
            
             // 当前度
             var angle=45;
             // 角速度
             var angleSpeed=1;
            
             // 将中心点作为0,0点坐标
            context.translate(centerX, centerY);
            
            /* *
            * 球对象
            
*/
            var Ball= function(x,y,radius,color)
           {
                 // 球的中心点位置
                 this.x=x;
                 this.y=y;
                 // 球的半径
                 this.radius=radius;
                 // 球的颜色
                 this.color=color;
                 // 球的边框颜色
                context.strokeStyle = color;
                 // 球体颜色
                context.fillStyle=color; 
                 /* *
                    * 绘制球
                    
*/ 
                 this.draw= function()
                {                
                   context.beginPath(); 
                   context.arc( this.x,  this.y,  this.radius, 0, 2 * Math.PI,  false); 
                   context.fill(); 
                   context.stroke();
                   context.closePath();
                }
           } 
 
            
             // 在中心点绘制一个球
             var ball= new Ball(0,0,20,"#ff0000");
            ball.draw();
            
             // 动画处理
             var drawAsync = eval(Jscex.compile("async",  function () {
                         while( true)
                        {                        
                             // 清除上一次绘制的球            
                            context.clearRect(ball.x-ball.radius-2,ball.y-ball.radius-2,ball.radius*2+8,ball.radius*2+8);
                             // 计算球在当前角度上的位置
                            ball.x+=Math.cos(angle*Math.PI/180)*angleSpeed;
                            ball.y+=Math.sin(angle*Math.PI/180)*angleSpeed;    

                             // 计算边界,如果出界了换个角度                    
                             if(ball.x>=centerX || ball.x<=-centerX || ball.y>=centerY|| ball.y<=-centerY)
                            {
                                 // 出界了
                                ball.x=0;
                                ball.y=0;
                                angle+=45;
                                 if(angle>360)
                                {
                                    angle=45;
                                }                                
                
                            }
                            document.getElementById("pInfo").innerText="当前角度:"+angle;
                            ball.draw();
                            $await(Jscex.Async.sleep(frames));                
                            
                        }    
                        
                                                                    
            }));
           drawAsync().start();
            

 作者:Louja

出处:http://loujady.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面给出原文连接,否则保留追究法律责任的权利。 

 

转载于:https://www.cnblogs.com/loujady/archive/2011/12/12/2284704.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值