博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
速度向量之单轴速度
阅读量:7015 次
发布时间:2019-06-28

本文共 1518 字,大约阅读时间需要 5 分钟。

源码

//
获取到舞台
var canvas=document.getElementById("stage");
//
舞台2d绘图接口
var context=canvas.getContext("2d");
//
获取中心点置
var centerX=canvas.width/2;
var centerY=canvas.height/2;
//
在舞台上画一条马路
context.lineWidth = 2;
context.strokeStyle = "#ff0000";
context.beginPath();
context.moveTo(0,centerY+2);
context.lineTo(centerX*2,centerY+2);
                 context.stroke();
                 context.closePath();
                 
/*
*
                  * 向量对象
                  
*/
                 
var Vector2d=
function(x,y)
                 {
this.x=x;
this.y=y;
                 } 
                 
/*
*
                  * 球对象
                  
*/
                 
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 rd=20;
                 
//
创建一个球对象,让球在马路的最左边
                 
var ball=
new Ball(rd+1,centerY-rd-1,rd,"#ccc"); 
                 
//
显示球
                 ball.draw(); 
var ballVector=
null;
                 
/*
*
                  * 开始按钮事件
                  
*/
                 
function Run()
                 { 
                      
//
球运行的速度
                       ballVector=
new Vector2d(2,0); 
                                     } 
 
//
动画
                     
var drawAsync = eval(Jscex.compile("async", 
function () {
                                 
while(
true)
                                 {
                
if(ballVector!=
null)
{
//
清空马路上方的区域
      context.clearRect(0,0, centerX*2, centerY);
      
//
球向右边行始
                                      ball.x+=ballVector.x;
                                      
if(ball.x-rd>=centerX*2)
                                      {
ball.x=rd+1;
                                      }
                                      ball.draw();
}
                                      $await(Jscex.Async.sleep(1000/60));
                                  } 
                     }));
                     drawAsync().start();

 作者:Louja

出处:http://loujady.cnblogs.com

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

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

你可能感兴趣的文章
Tesseract-OCR 字体库下载地址
查看>>
sz一般是结尾带有'\0'的字符串。 string zero
查看>>
如何从Apache官网下载windows版apache服务器
查看>>
node-sqlite3的事务执行方法
查看>>
NPOI之Excel——合并单元格、设置样式、输入公式
查看>>
选取不在另一张表中记录的方法及优化
查看>>
linux 学习笔记之文件与管理
查看>>
body元素对象的clientWidth、offsetWidth、scrollWidth、clientLeft、offsetLeft、scrollLeft
查看>>
监控系统Opserver的配置调试
查看>>
Python正则表达式
查看>>
日志文件报警监控脚本(可用于zabbix监控文件)测试中...
查看>>
【原创】Python第二章——行与缩进
查看>>
【规划】学习计划
查看>>
2014.5.20知识点学习:void及void指针含义的深刻解析(转载)
查看>>
thrift
查看>>
Django建站纪要(三)——建博客
查看>>
Python全栈之路(目录) - 含资料(持续更新)
查看>>
cutpFTP设置步骤
查看>>
org-reveal
查看>>
CSS实例:图片导航块
查看>>