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混合模式mix-blend-mode/background-blend-mode简介
Mar 15 HTML / CSS
css3 border-image使用说明
Jun 23 HTML / CSS
收集的22款给力的HTML5和CSS3帮助工具
Sep 14 HTML / CSS
在css3中background-clip属性与background-origin属性的用法介绍
Nov 13 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
CSS3制作文字半透明倒影效果的两种实现方式
Aug 08 HTML / CSS
详解CSS3 Media Queries中媒体属性的使用
Feb 29 HTML / CSS
把富文本的回车转为br标签
Aug 09 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
Jan 02 HTML / CSS
浅析HTML5中的 History 模式
Jun 22 HTML / CSS
html form表单基础入门案例讲解
Jul 21 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 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
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
PHP7内核之Reference详解
2019/03/14 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python爬豆瓣电影实例
2018/02/23 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
pytorch中[..., 0]的用法说明
2021/05/20 Python
Python re.sub 反向引用的实现
2021/07/07 Python