canvas教程

唯爱社区www.viqq.cn

字号+ 作者:H5之家 来源:H5之家 2016-07-22 16:01 我要评论( )

HTML5 canvas画图

cxt.strokeText("jingwhale",20,350); //画图 把一幅图片画到画布中 注意webkit内核的浏览器 chrome和猎豹不支持 var img =new Image(); img.src="xiaomm.jpg"; cxt.drawImage(img,20,370,230,306); //画一个三角形 cxt.beginPath(); //移动至开始点 cxt.moveTo(300,500); cxt.lineTo(300,600); cxt.lineTo(400,550); cxt.closePath();//填充或者画路径需要先闭合路径再画 cxt.stroke(); //实心三角形 cxt.beginPath(); //移动至开始点 cxt.moveTo(300,600); cxt.lineTo(300,700); cxt.lineTo(400,650); cxt.closePath(); cxt.fill(); //旋转图片 图片 //设置旋转环境 cxt.save(); //在异次元空间重置0,0点的位置 cxt.translate(20,20); //图片/形状旋转 //设置旋转角度 参数是弧度 角度 0-360 弧度=角度*Math.PI/180 cxt.rotate(-30*Math.PI/180); //旋转一个线段 cxt.lineWidth=10; cxt.beginPath(); cxt.moveTo(0,0); cxt.lineTo(20,100); cxt.stroke(); cxt.closePath(); //将旋转之后的元素放回原画布 cxt.restore(); //过程不可颠倒 先设置00点在旋转角度,然后画图 //旋转图片 cxt.save(); cxt.translate(20,370); cxt.rotate(-10*Math.PI/180); var img =new Image(); img.src="xiaomm.jpg"; cxt.drawImage(img,0,0,230,306); cxt.restore(); /script /body /html

演示

image

3.2画图流程

1.设置、获取画布DOM;

2.设置绘图环境
  var cxt=canvas.getContext('2d');
3.开启新路径

cxt.beginPath();

4.设定画笔的宽度
cxt.lineWidth=10;
5.设置画笔的颜色
cxt.stroke ;

6.依据API画图

7.封闭路径
cxt.closePath();

3.3canvas 作业-星球运转

jdfw

//获取canvas绘图环境 var context = document.getElementById('canvas').getContext('2d'); var time = 0; //星球轨道 function drawTrack(){ for(var i = 0; i i++){ //开始路径 context.beginPath(); context.arc(500,500,(i+1)*50,0,360,false); //关闭路径 context.closePath(); context.strokeStyle = '#fff'; context.stroke(); //执行以下此函数,画出各星球的轨道 drawTrack(); //星球 星球对象的构造方法 实例化后能画出所有的星球 function Star(x,y,radius,sColor,eColor,cycle){ //星球需要的哪些属性 //星球的坐标点 this.x = x; this.y = y; //星球的半径 this.radius = radius; //星球的颜色 this.sColor = sColor; this.eColor = eColor; //公转周期 this.cycle = cycle; //绘画出星球 this.draw = function(){ //异次元空间进行绘画 context.save(); //重设0,0坐标点 context.translate(500,500); //设置旋转角度 context.rotate(time*360/this.cycle*Math.PI/180); context.beginPath(); context.arc(this.x,this.y,this.radius,0,360,false); context.closePath(); //星球的填充色(径向渐变 开始色和结束色) this.color = context.createRadialGradient(this.x,this.y,0,this.x,this.y,this.radius); this.color.addColorStop(0,this.sColor); this.color.addColorStop(1,this.eColor); context.fillStyle = this.color; context.fill(); context.restore(); time +=1; //各星球构造方法 从star中继承 function Sun(){ Star.call(this,0,0,20,'#f00','#f90',0); function Mercury(){ Star.call(this,0,-50,10,'#A69697','#5C3E40',87.70); function Venus(){ Star.call(this,0,-100,10,'#C4BBAC','#1F1315',224.701); function Earth(){ Star.call(this,0,-150,10,'#78B1E8','#050C12',365.2422); function Mars(){ Star.call(this,0,-200,10,'#CEC9B6','#76422D',686.98); function Jupiter(){ Star.call(this,0,-250,10,'#C0A48E','#322222',4332.589); function Saturn(){ Star.call(this,0,-300,10,'#F7F9E3','#5C4533',10759.5); function Uranus(){ Star.call(this,0,-350,10,'#A7E1E5','#19243A',30799.095); function Neptune(){ Star.call(this,0,-400,10,'#0661B2','#1E3B73',164.8*365); //各星球对象的实例化 var sun = new Sun(); var water = new Mercury(); var gold = new Venus(); var diqiu = new Earth(); var fire = new Mars(); var wood = new Jupiter(); var soil = new Saturn(); var sky = new Uranus(); var sea = new Neptune(); function move(){ //清除画布 context.clearRect(0,0,1000,1000); //重新绘制一遍轨道 drawTrack(); sun.draw(); water.draw(); gold.draw(); diqiu.draw(); fire.draw(); wood.draw(); soil.draw(); sky.draw(); sea.draw(); //星球围绕太阳运动起来 setInterval(move,100);

演示

四.canvas画图实例-网页画图

源代码:https://github.com/jingwhale/online-canvas

image

1.画图板功能分析

功能区(保存、清空)
工具区(形状和工具)
属性设置区(颜色和线宽)
绘图区域(canvas标签)

2.技术需求分析

页面布局- HTML5标签
页面美化- CSS2
功能设置- Javascript编程
Canvas API- 属性设置、画线、写字、画图、画布操作(清空、获取画布信息)、
下载- php的下载(JS无法操作本地文件)

3.画一个简单的画布

鼠标点击时
准备起始点 moveTo()、设置标志位
鼠标移动时
判断标志位,值为true画图,false不画图
移动时指定路径lineTo(),并且画出来stroke()
鼠标离开或者抬
清空标志位

4.复杂的在线画板

获取相应元素对象
设置点击状态
设置触发功能
颜色属性设置
线宽属性设置
绘图形状设置
工具指定

5.html结构部分:

clipboard

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • HTML5新特性详解(三)

    HTML5新特性详解(三)

    2017-04-30 16:03

网友点评