笔记十三(绘制二)
2015-12-05 20:13
288 查看
利用quadraticCurveTo(cpx,cpy,x,y)方法绘制曲线,接收两个参数,第一个是控制点,第二个是曲线终点。该形状由一个名为二次贝塞尔曲线的标准算法决定。该曲线会弯向但永不触及控制点。要想曲线穿过某点,使用一下公式:(x0,y0)为起点,(x2,y2)为终点,(x1,y1)作为控制点,(xt,yt)代表要穿过的目标点。
创建一个绘制曲线的程序:
文件名:drawing2.html。
效果图:
参见《HTML5+Javascript动画基础》。
x1 = xt * 2 - (x0 + x2) / 2 y1 = yt * 2 - (y0 + y2) / 2
创建一个绘制曲线的程序:
文件名:drawing2.html。
<!DOCTYPE html> <html> <head> <meta charset = "utf-8"> <title>绘制2</title> <style> #canvas{background-color: #99cc33;} </style> </head> <body> <canvas id="canvas" width="400" height="400"></canvas> <script src="utils.js"></script> <script type="text/javascript"> window.onload = function(){ var canvas = document.getElementById('canvas'), context = canvas.getContext("2d"), mouse = utils.captureMouse(canvas), x0= 100, y0= 200, x2= 300, y2= 200; canvas.addEventListener("mousemove" , function(){ context.clearRect(0,0,canvas.width,canvas.height); var x1 = mouse.x * 2 - (x0+x2)/2, y1 = mouse.y * 2 - (y0+y2)/2; context.beginPath(); context.moveTo(x0,y0); context.quadraticCurveTo(x1,y1,x2,y2); context.stroke(); },false); } </script> </body> </html>
效果图:
参见《HTML5+Javascript动画基础》。
相关文章推荐
- 安装系统出现Winload.exe错误0xc000000e解决方法
- 随机森林算法-Deep Dive
- 在线编程及其学习平台
- /etc/profile、/etc/bashrc、.bash_profile和.bashrc的区别
- Mybatis逆向生成
- JQuery--jQuery对象与DOM对象
- 完成【PS单张HDR效果】作业的一些提示
- Hibernate反向工程可能存在的问题
- hdu 4614 线段树+二分
- Tomcat6.0的安装与配置
- (python)下载喜马拉雅电台的音频
- Openstack在centos上的配置--(一)前期环境准备
- 【总结】String in Java
- selenium Remote Server 实现原理
- 1004.成绩排名
- 五子棋
- 算法总结系列之五: 基数排序(Radix Sort)
- jquery学习2
- Winload.efi Error Code 0xc0000225
- 2015-12-05 Eclipse项目导入到Android Studio中时出现的一些问题