canvas高级贝塞尔曲线运动动画

window.addEventListener('load',eventWindowLoaded,false);functioneventWindowLoaded(){

canvasApp();

}functioncanvasSupport(){returnModernizr.canvas;

}functioncanvasApp(){if(!canvasSupport()){return;

}varpointImage= newImage();

pointImage.src="point.png";functiondrawScreen(){ //首先填充canvas的背景

context.fillStyle= '#eee'context.fillRect(0,0,theCanvas.width,theCanvas.height);//边框

context.strokeStyle= '#eee'context.strokeRect(1,1,theCanvas.width,theCanvas.height);

//在这里解释下贝塞尔曲线,看网页底部的那个点击成Canvas三次贝塞尔曲线操作实例!你就会发现一个曲线是由4个点组成的,在下面有注释vart=ball.t;varcx= 3*(p1.x-p0.x);varbx= 3*(p2.x-p1.x)-cx;varax=p3.x-p0.x-cx-bx;varcy= 3*(p1.y-p0.y);varby= 3*(p2.y-p1.y)-cy;varay=p3.y-p0.y-cy-by;varxt=ax*(t*t*t)+bx*(t*t)+cx*t+p0.x;varyt=ay*(t*t*t)+by*(t*t)+cy*t+p0.y;

//这里的xt和yt贝塞尔曲线的公式,这里涉及到一门叫做计算机图形学的学科(大学里面有上,我也最近一直在上)//0 <= t <= 1这是一个T....学过图形学的应该知道比如一根直线他的起始坐标轴的位置(0,0)然后有DDA算法计算斜率,他也是一样,具体的公式网上还是都有的,我的语言组织也不是很好-_-//

ball.t+=ball.speed;if(ball.t>1){

ball.t=1;

}//绘制点

context.font= "10px sans";

context.fillStyle= "#ff0000";

context.beginPath();

context.arc(p0.x,p0.y,8,0,Math.PI*2,true);

context.closePath();

context.fill();

context.fillStyle= "#fff";

context.fillText("0",p0.x-2,p0.y+2);//points.push({x:xt,y:yt});for(vari=0;i

context.drawImage(pointImage,points[i].x,points[i].y,1,1);

}

//绘制图片重点!!!!图片,定位context.drawImage(img,x,y,width,height);也就是绘制那个点后的小点的轨迹

context.closePath();

context.fillStyle="#000000";

context.beginPath();

context.arc(xt,yt,5,0,Math.PI*2,true);

context.closePath();

context.fill();

}varp0={x:60,y:10};//起始点varp1={x:70,y:200};//1号点varp2={x:125,y:295};//2号点varp3={x:350,y:350};//3号点varball={x:0,y:0,speed:.01,t:0};varpoints=newArray();

//这里的起始点和3号点,我取得的名字比较通俗一下,实际上应该称为端点。因为必须要经过的 //1号点和2号点虽然可以删除但是他控制着弧线的路径,我们就叫他控制点

theCanvas=document.getElementById('canvas')

context=theCanvas.getContext("2d")

setInterval(drawScreen,33);

}

你的浏览器无法使用canvas

小白童鞋;你的支持是我最大的快乐!!

html5绘制运动的图形,html5 canvas高级贝塞尔曲线运动动画相关推荐

  1. html5绘制节点链接,利用HTML5实现网状结构节点动画特效

    特效描述:利用HTML5实现 网状结构 节点动画特效.利用HTML5实现网状结构节点动画特效 代码结构 1. HTML代码 (function() { var canvas, ctx, circ, n ...

  2. Html5学习------canvas绘制径向渐变图形

    <!DOCTYPE HTML> <html><head><meta http-equiv="Content-Type" content=& ...

  3. 使用 HTML5 canvas 绘制精美的图形

    HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C "工作草案" - 意味着它仍然处于开发阶段 - 它包含丰富的元素和属性,它 ...

  4. html5 canvas绘制图形,html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  5. html实例教程 图片绘画,Html5 canvas绘制一个机器人图形的实例教程

    Canvas的功能强大,今天我只运用到Canvas的绘制图形功能来完成一个简单线条型机器人的绘制,在绘图的过程中我还是得复述一下用到的几个图形的基础知识,通过这个实例,你可以基本上了解到Canvas的 ...

  6. html5 绘制图形,HTML5绘制几何图形

    绘制几何图形 var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext(" ...

  7. html5绘制基本图形代码,一波HTML5Canvas基础绘图实例代码集合

    CSS中p.art #p2和p#p2比较,那个的特殊性更高 html5 两个canvas重叠放在一个div里面,每个canvas 将图片素材引入网页,定义canvas标签,获取canvas的上下文.定 ...

  8. html5怎么画坐标图,新手如何5分钟学会用canvas在HTML5上画简单图形

    HTML5中的另外一个新元素是标签.须要使用JavaScript来操做和绘制画布. canvas元素为脚本提供了一个依赖于分辨率的位图画布,它能够用于呈现图形.游戏图形或其余可视图像. 当一个更合适的 ...

  9. 新手如何5分钟学会用canvas在HTML5上画简单图形

    HTML5中的另一个新元素是标签.需要使用JavaScript来操作和绘制画布. canvas元素为脚本提供了一个依赖于分辨率的位图画布,它可以用于呈现图形.游戏图形或其他可视图像. 当一个更合适的元 ...

最新文章

  1. 五、DNS与bind
  2. 解决gitosis中authorized_keys不自动更新问题
  3. 华为上机考试题系列(二):HJ107求解立方根
  4. element-ui介绍
  5. php 正则表达式 x,php – 匹配x正则表达式或y正则表达式
  6. 前端怎么画三角形_WEB前端-CSS三角形绘制方法
  7. linux jmeter 内存,JMeter-Linux内存不足
  8. android sdkversion
  9. 让世界没有陌生的角落共享单车时代的快与慢
  10. 最常被利用的三大 API 漏洞:是什么、为什么、如何阻止?
  11. php删除数组中相同的元素,只保留一个相同元素
  12. win32以动态链接库导出类及其成员变量
  13. Ubuntu16.04下完美切换Python版本
  14. 如何查看一个网页源代码的最后更新时间
  15. 使用Driftnet通过Wifi Pumpkin捕获移动图像
  16. QQ互联验证Universal Link 状态提示应用的universallink配置中不含互联信息
  17. python京东抢购软件神器_用Python在京东抢购商品
  18. Java 阿里云图片添加水印
  19. Oracle如何限制非法调用包中过程
  20. 文献管理与信息分析(课堂笔记前六章)

热门文章

  1. 如何用社交电商来解决企业痛点
  2. Tello无人机飞控(Python)程序设计
  3. iPad Multitasking支持需要这些方向
  4. 云顶之弈手游铁王八盾法阵容玩法讲解
  5. 公众号后台开发上传文件功能
  6. iOS接入锁屏密码、指纹、面容ID(FaceID) Swift以及例子代码
  7. 计算机有音乐升降调功能吗,音乐中的降调和升调是什么意思?
  8. linux下db2数据库命令
  9. pAdPt_-9 活动的生命周期[LogCat java关键字] 传递数据[Intent 静态变量 全局变量 剪切板]
  10. Android 搜索不到蓝牙设备