Html5画布_动力节点Java学院整理


Posted in HTML / CSS onJuly 13, 2017

1,Canvas的定义

<canvas id="myCanvas" width="400" height="200">

默认<canvas>画布在页面上会显示一块空白、无边框的矩形。为了让其显示轮廓,通过定义样式规则给其添加一个虚线边框:

canvas {
    border: 1px dashed black;
}

2,获取Canvas的上下文对象

要完成绘图任务,首先我们要拿到<canvas>对象,接着取得其二维绘图上下文。

下面样例演示在页面加载完毕时获取绘图上下文:

<script>
    window.onload = function() {
        var canvas = document.getElementById("myCanvas");
        var context = canvas.getContext("2d");
 
        //这里写绘图代码
    }
</script>

3,画直线

(1)下面绘制一条起点是(50,50),终点是(150,150)的直线线条

context.moveTo(50, 50);
context.lineTo(150, 150);
context.stroke();

Html5画布_动力节点Java学院整理

(2)使用lineWidth、strokeStyle属性分别设置线条的宽度和颜色

//线条宽度
context.lineWidth = 10;
 
//线条颜色(支持颜色编码与rgb()函数)
context.strokeStyle = "#cd2828";
context.strokeStyle = "rgb(205,40,40)";
 
context.moveTo(50, 50);
context.lineTo(150, 150);
context.stroke();

Html5画布_动力节点Java学院整理

(3)使用 lineCap 属性设置线条两端的形状(线头类型):

  1. butt:方头(默认值)
  2. round:圆头
  3. square:加长方头(效果与butt类似,但会在线条的两头各增加一半线宽的长度)
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
 
//线条宽度
context.lineWidth = 10;
//线条颜色
context.strokeStyle = "#cd2828";
 
//第一条直线,默认方头
context.moveTo(50, 50);
context.lineTo(250, 50);
context.stroke();
 
//第二条直线,使用圆头
context.beginPath();
context.moveTo(50, 100);
context.lineTo(250, 100);
context.lineCap = "round";
context.stroke();
 
//第三条直线,使用加长方头
context.beginPath();
context.moveTo(50, 150);
context.lineTo(250, 150);
context.lineCap = "square";
context.stroke();

Html5画布_动力节点Java学院整理

注:绘图上下文的beginPath()方法

上面样例可以看到每次开始新线段的绘制时,都要调用 beginPath() 方法。

如果没有这一步操作,那么每次调用 stroke() 都会把画布上原有的线段再重新绘制一边。特别像上面的例子,绘制新线段时都要修改上下文属性,如果不调用 beginPath() 方法,那么原有的直线也会使用新的样式绘制。

HTML / CSS 相关文章推荐
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
Dec 30 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
May 07 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
详解css3 flex弹性盒自动铺满写法
Sep 17 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
Jul 13 HTML / CSS
HTML5中的nav标签学习笔记
Jun 24 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
html5+css3实现一款注册表单实例
Apr 17 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
May 29 HTML / CSS
利用纯html5绘制出来的一款非常漂亮的时钟
Jan 04 HTML / CSS
HTML块级标签汇总(小篇)
Jul 13 HTML / CSS
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
Oct 16 HTML / CSS
html5应用缓存_动力节点Java学院整理
Jul 13 #HTML / CSS
html5理解head_动力节点Java学院整理
Jul 13 #HTML / CSS
HTML5拖放功能_动力节点Java学院整理
Jul 13 #HTML / CSS
html5视频播放_动力节点Java学院整理
Jul 13 #HTML / CSS
HTML5之web workers_动力节点Java学院整理
Jul 17 #HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
Jul 17 #HTML / CSS
HTML5等待加载动画效果
Jul 27 #HTML / CSS
You might like
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
详解Python字典的操作
2019/03/04 Python
python批量创建指定名称的文件夹
2019/03/21 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
delegate与普通函数的区别
2014/01/22 面试题
大学生物业管理求职信
2013/10/24 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
保健品市场营销方案
2014/03/31 职场文书
民政局个人整改措施
2014/09/24 职场文书
护士自荐信怎么写
2015/03/06 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
员工加薪申请报告
2015/05/15 职场文书
班级联欢会主持词
2015/07/03 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
用python画城市轮播地图
2021/05/28 Python