• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > html5 canvas常用属性方法(介绍)

html5 canvas常用属性方法(介绍)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含canvas,html5等相关知识,匿名希望在学习及工作中可以帮助到您
本章给大家带来html5 canvas常用属性方法(介绍),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

首先引入<canvas></canvas>标签就不必说了。

其次就是得到canvas的2d环境了( var ctx = canvasDom.getContext('2d') )。

现在呢,你可能想画点什么东西。画东西之前你要确定好一些东西,比如:

 ctx.fillStyle:这是一个用来确定填充颜色的属性。(带fill都和填充有关)
ctx.strokeStyle:这是一个用来确定"笔路径"(就像是线条)的属性。(带stroke都和描线有关)
ctx.shadow++:这是有4个设置所画图形阴影的属性(shadowColor,shadowBlur,shadowOffsetX,shadowOffsetY),我不常用,略。
ctx.lineWidth:这是4个设置线条样式的属性(lineCap,lineJoin,lineWidth,miterLimit)中最常用的,设置线宽,值为带px的string。
ctx.font:这是设置文本()的字体大小和字体样式,值可以是"30px",也可以是"30px Microsoft yahei"。同时配合ctx.textAlign和ctx.baseline设置对齐位置和基线位置。然后通过ctx.filltext()或者ctx.strokeText()绘制文字,还有ctx.measureText()返回一个对象,里面包含文本的信息,比如width,height。

了解了上面这些基础属性后,你就可以画点什么了:

想要显示点什么东西,流程大概是先弄路径(路径是看不见的),然后再通过ctx.fill()或ctx.stroke来对路径进行填充或描线。

你可以用ctx.rect(x,y,width,height)或ctx.arc(x,y,radius,startAngle,endAngle,anticolorwise)先弄一个路径,然后在fill或者stroke。

当然矩形有ctx.fillRect()和ctx.strokeRect()直接弄一个可见的方形。(圆没有这两个方法)

最后再介绍一个黑板擦--ctx.clearRect(x,y,weight,height),用来清除该方框内的所有像素。

还有一个为了防止之前的路径干扰,可以在每次画之前都ctx.beginPath()来清掉之前的路径。

以上就是基本的canvas的使用,下面就来聊点高(yong)级(bu)点(shang)的。

矩形样式的渐变填充:

var grd = ctx.createLinearGradient(x0,y0,x1,y1);
grd.addColorStop(0,"black");
grd.addColorStop(1,"white");
ctx.fillstyle = grd;
ctx.fillRect(x,y,w,h);

这一趟下来相当于是先预定义了一个渐变样式(可填充或者描线),将样式设置好后进行填充或者描线。

还有createRadialGradient()配合addColorStop设置放射状的样式。

媒体(图片、视频、其他canvas)的填充:  

var img = imgDom;
var pat = ctx.createPattern(img,"repeat");

然后这个pat就可以给ctx.++Style,从而进行填充或者描线等。

其中pattern有四种:repeat(默认),repeat-x,repeat-y,no-repeat。

自定义路径:

利用ctx.moveTo(x,y);把路径起点移动到(x,y) ,然后配合lineTo(x,y),就可以得到路径,就可以描线显示出来。

当然如果你想填充,但是可能路径没有闭合,可以利用ctx.closePath()闭合路径,然后进行填充。

画布切割:

使用ctx.clip()可以根据当前已闭合的路径来剪切画布,被剪切的画布部分就不能被操作了。

可以通过ctx.save()对当前区域先进行保存,然后通过ctx.restore()进行恢复。

画圆弧:

画圆弧通过ctx.arcTo(x0,y0,x1,y1,radius);通过两点和半径确定弧线,来得到路径,然后根据需要填充或者描线。

判断点是否在路径内:

ctx.isPointInPath();返回布尔值,没啥好说的。

有一种曲线叫 贝塞尔:

  先用ctx.moveTo()移至起始点。

  ctx.quadraticCurveTo(c1x,c1y,edx,edy);利用起点和一个控制点加终点的贝塞尔曲线;

  ctx.beizierCurveTo(c1x,c1y,c2x,c2y,edx,edy);利用两个控制点绘制的贝塞尔曲线。

图形转换:

    ctx.scale(w,h);放大w>1就是宽度上放大,h就是高度上。

    ctx.rotate(r);r为弧度单位,如20度:20*Math.PI/180。顺时针。

    ctx.translate(x,y)设置画布上(0,0)的位置,(x,y)就是当前(0,0)的位置。

    ctx.transform(a,b,c,d,e,f);分别是水平缩放、水平倾斜、垂直倾斜、垂直缩放、水平位移、垂直位移。该属性会叠加,对下一个图形有效。

    ctx.setTransform(a,b,c,d,e,f);同上,该属性会重新定义一个transform,对下一个图形有效。

drawImage():

  ctx.drawImage(dom,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);除了dom外最多还可以传8个参数,传2个是定位图像(原尺寸),传4个是按大小定位图像,传8个是剪切后定位图像(分别是:剪切开始x,y,剪切大小w,h,定位位置x,y,大小w,h)。

  globalAipha属性:设置全局透明度。(已经画好的不受影响)。

  globalCompositeOperation 属性 设置上一个和下一个重叠区的层叠顺序,有"source-over","destination-over",哪个over,哪个在下面。

以上就是html5 canvas常用属性方法(介绍)的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • canvas与html5实现视频截图功能示例
  • 详解html5 canvas常用api总结(二)--绘图API
  • HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
  • 详解使用HTML5 Canvas创建动态粒子网格动画
  • 解决canvas转base64/jpeg时透明区域变成黑色背景的方法
  • 用html5的canvas和JavaScript创建一个绘图程序的简单实例
  • HTML5 canvas基本绘图之图形组合
  • HTML5 canvas基本绘图之文字渲染
  • HTML5 canvas基本绘图之绘制曲线
  • HTML5 canvas基本绘图之图形变换

相关文章

  • 2018-12-03关于6个超炫酷的HTML5电子书翻页动画的详情
  • 2018-12-03求科普,请问HTML5究竟是什么?
  • 2018-12-03基于 HTML5 的 3D 网络拓扑树呈现图文代码详解
  • 2018-12-03弹性盒模型 flex box的认知与使用
  • 2018-12-03手机html网页和电脑上的html网页在制作上有什么区别?
  • 2018-12-03H5移动端各种各样的列表的制作方法(七最终章)
  • 2018-12-03使用HTML5画布实现的超棒javascript动画仪表板:gauge.js?1.1.2
  • 2017-08-06localstorage和sessionstorage使用记录(推荐)
  • 2018-12-03女,人力资源岗位,毕业5年,想转行web前端?
  • 2018-12-03html5中video(视频)元素的分析

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Dreamweaver只是一个工具,为什么这么多招聘要求一定要熟练使用它?
    • 什么是Notifications?HTML5 Notifications桌面提醒
    • 怎么爬取twitter某个用户的所有tweets?
    • HTML5 canvas如何实现马赛克的淡入淡出效果(代码)
    • HTML5版智力拼图
    • 使用css3 属性如何丰富图片样式(圆角 阴影 渐变)_html5教程技巧
    • 你见过最炫酷的微信html5营销或宣传页面是哪个?
    • css 如何让背景图片拉伸填充避免重复显示
    • 如何利用input事件来监听移动端的输入_html5教程技巧
    • 详解HTML5头部<meta>标签的常用信息小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有