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实现炫酷的飞机起飞动画
Sep 17 HTML / CSS
基于DOM+CSS3实现OrgChart组织结构图插件
Mar 02 HTML / CSS
css3实现背景动态渐变效果
Dec 10 HTML / CSS
CSS3实现时间轴特效
Nov 02 HTML / CSS
CSS3 实现倒计时效果
Nov 25 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
Jul 12 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
Sep 26 HTML / CSS
前端canvas动画如何转成mp4视频的方法
Jun 17 HTML / CSS
HTML5 canvas基本绘图之绘制五角星
Jun 27 HTML / CSS
a标签下载链接的简单实现
Sep 13 HTML / CSS
html5简单示例_动力节点Java学院整理
Jul 07 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
Jan 22 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读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
Jquery性能优化详解
2014/05/15 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
理解Python中的With语句
2016/03/18 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
Python下载的11种姿势(小结)
2020/11/18 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
销售心得体会
2014/01/02 职场文书
实验教师岗位职责
2014/02/13 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
保研推荐信范文
2015/03/25 职场文书
2015年司法所工作总结
2015/04/27 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL