HTML5 Canvas——基础入门
认识canvas
html5的新标签
<canvas>标签只是图像容器,必须使用js来绘制图形可以通过多种方法使用canvas绘制路径,盒,圆,字符以及添加图像
canvas画布
<!-- 注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小. -->
<canvas id="myCanvas" width="600" height="600" style="border: 1px solid red;background-color: pink;"> </canvas>
矩形
<!-- 1.矩形 -->
<script type="text/javascript">
/*获取元素*/
var c = document.getElementById("myCanvas");
/*获取绘图工具*/
var ctx = c.getContext("2d");
/* 设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。 */
ctx.fillStyle = "#ccc";
/* fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。 */
ctx.fillRect(50, 50, 200, 100);
</script>
折线
<!-- 2.折线 -->
<script type="text/javascript">
/*获取元素*/
var c = document.getElementById("myCanvas");
/*获取绘图工具*/
var ctx = c.getContext("2d");
/* 起点 */
ctx.moveTo(10, 10);
/* 移动 */
ctx.lineTo(200, 100);
ctx.lineTo(400, 400);
/* 线宽 */
ctx.lineWidth = 20;
/* 线条颜色 */
ctx.strokeStyle = 'red';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke();
</script>
<!-- 2.折线 -->
<script type="text/javascript">
/*获取元素*/
var c = document.getElementById("myCanvas");
/*获取绘图工具*/
var ctx = c.getContext("2d");
/* 起点 */
ctx.moveTo(10, 10);
/* 移动 */
ctx.lineTo(200, 100);
ctx.lineTo(400, 400);
/* 线宽 */
ctx.lineWidth = 20;
/* 线条颜色 */
ctx.strokeStyle = 'red';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke();
</script>
红色填充的三角形
<!-- 3.画一个红色填充的三角形 -->
<script type="text/javascript">
/*获取元素*/
var c = document.getElementById("myCanvas");
/*获取绘图工具*/
var ctx = c.getContext("2d");
/* 起点 */
ctx.moveTo(100,100);
/* 移动 */
ctx.lineTo(200,200);
ctx.lineTo(100,200);
//这样连接的不是很完美
//ctx.lineTo(100,100);
ctx.closePath();//自动闭合 /* 线宽 */
ctx.lineWidth = 20;
/* 线条颜色 */
ctx.strokeStyle = 'green';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke(); /* 填充 */
ctx.fillStyle = 'red';
//填充
ctx.fill();
</script>
镂空的正方形
我填充了绿色
开启新路径方法:
<script type="text/javascript">
/*获取元素*/
var c = document.getElementById("myCanvas");
/*获取绘图工具*/
var ctx = c.getContext("2d");
/* 1.画一个大的正方 */
ctx.moveTo(100, 100);
ctx.lineTo(300, 100);
ctx.lineTo(300, 300);
ctx.lineTo(100, 300);
ctx.closePath();
/* 边框线宽 */
ctx.lineWidth = 5;
/* 线条颜色 */
ctx.strokeStyle = 'yellow';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke();
/* 填充 */
ctx.fillStyle = 'purple';
ctx.fill();
//开启新路径 让每一段路径称为独立的路径 可以分别设置样式(填充的样式 描边的样式)
ctx.beginPath();
/* 2.画一个小的正方 */
ctx.moveTo(120, 120);
ctx.lineTo(120, 220);
ctx.lineTo(220, 220);
ctx.lineTo(220, 120);
ctx.closePath();
/* 边框线宽 */
ctx.lineWidth = 5;
/* 线条颜色 */
ctx.strokeStyle = 'red';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke(); /* 填充 */
ctx.fillStyle = 'green';
ctx.fill(); /* 填充原则:非零环绕规则:
从该区域向外画一条线,与边框相交顺时针+1,逆时针-1,和为0时,不填充
不管是多少个边框嵌套,都要从每个嵌套区域划线一次
*/
</script>

非零环绕原则
<script type="text/javascript">
/*获取元素*/
var c = document.getElementById("myCanvas");
/*获取绘图工具*/
var ctx = c.getContext("2d");
/* 1.画一个大的正方 */
ctx.moveTo(100, 100);
ctx.lineTo(300, 100);
ctx.lineTo(300, 300);
ctx.lineTo(100, 300);
ctx.closePath();
/* 边框线宽 */
ctx.lineWidth = 5;
/* 线条颜色 */
ctx.strokeStyle = 'yellow';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke(); /* 2.画一个小的正方 */
ctx.moveTo(120, 120);
ctx.lineTo(120, 220);
ctx.lineTo(220, 220);
ctx.lineTo(220, 120);
ctx.closePath();
/* 边框线宽 */
ctx.lineWidth = 5;
/* 线条颜色 */
ctx.strokeStyle = 'red';
/* 使用 stroke() 方法来绘制线条 */
ctx.stroke(); /* 填充 */
/* 填充原则:非零环绕规则:
从该区域向外画一条线,与边框相交顺时针+1,逆时针-1,和为0时,不填充
不管是多少个边框嵌套,都要从每个嵌套区域划线一次
*/
ctx.fillStyle = 'green';
ctx.fill(); </script>

折线过度
<script type="text/javascript">
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d"); /*红色 10*/
ctx.moveTo(100,100);
ctx.lineTo(200,50);
ctx.lineTo(300,100);
ctx.lineWidth = 10;
ctx.lineCap = 'butt'; //默认 线两端样式 啥也没有
ctx.lineJoin = 'miter'; //没有没有任何样式
ctx.strokeStyle = 'red';
ctx.stroke(); ctx.beginPath(); /*蓝色 15*/
ctx.moveTo(100,200);
ctx.lineTo(200,150);
ctx.lineTo(300,200);
ctx.lineWidth = 15;
ctx.lineCap = 'square'; //线两端样式 方形的
ctx.lineJoin = 'bevel';
ctx.strokeStyle = 'blue';
ctx.stroke(); ctx.beginPath(); /*绿色 20*/
ctx.moveTo(100,300);
ctx.lineTo(200,250);
ctx.lineTo(300,300);
/*线两端样式*/
ctx.lineCap = 'round';//线两端样式 圆帽子
/*线拐点样式*/
ctx.lineJoin = 'round'; ctx.lineWidth = 20;
ctx.strokeStyle = 'green';
ctx.stroke(); </script>

HTML5 Canvas——基础入门的更多相关文章
- HTML5 Canvas 画图入门
HTML5 Canvas 画图入门 HTML5 Canvas 画图入门,仅供学习參考 <!DOCTYPE html> <html> <head> <meta ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
- HTML5 <canvas> 基础学习
HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形 创建一个画布( ...
- HTML5 Canvas基础知识
HTML5画布 1.创建一个画布 <canvas id="myCanvas" width="200" height="100&q ...
- html5 canvas基础10点
本文主要讲解下一些canvas的基础 1.<canvas id="canvas">若此浏览器不支持canvas会显示该文字</canvas> //创建个ht ...
- canvas基础入门(二)绘制线条、三角形、七巧板
复杂的内容都是有简单的线条结合而成的,想要绘制出复杂好看的内容先从画直线开始 canvas绘制直线先认识几个函数 beginPath():开始一条路径,或重置当前的路径 moveTo(x,y):用于规 ...
- canvas基础入门(一)canvas的width、height于css样式中的宽高区别
canvas的width.height于css样式中的宽高对画布的内容显示是有所区别的 1.在canvas标签下调用他的width和height,而且是没有单位的宽高,这种指定canvas大小的方法也 ...
- canvas 基础知识整理(二)
html部分: <canvas id="myCanvas" width="800" height="800" ></can ...
- canvas 基础知识整理(一)
canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...
随机推荐
- Thymeleaf(一)---引入js/css文件
th:href="@{/static/css/style.css}" th:src="@{/static/js/thymeleaf.js}" index.htm ...
- flask 常用数据模型模板
1.一对多关系模型 示例代码 class Role(db.Model): """角色表""" __tablename__ = 'roles' ...
- Golang的类型转换实战案例
Golang的类型转换实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据类型概述 基础数据类型概述,博主推荐阅读: 布尔型: https://www.cnblogs. ...
- linux下编译bochs-2.6.2
操作系统: Fedora19 内核: 3.12.9 Linux localhost.localdomain 3.12.9-201.fc19.i686 #1 SMP Wed Jan 29 16:02:1 ...
- FULLTEXT INDEX全文索引
给现有的wxinfo表的sourceUrl 字段创建全文索引 ALTER TABLE wxinfo ADD FULLTEXT INDEX sourceUrl (sourceUrl) 创建全文索引前: ...
- 笔记本如何不按Fn键就能实现F键的功能
笔记本的F1~F12键的附带功能如何改成 不用按Fn键就能实现F1~F12的功能 本人现在使用的是一款ThinkPad的本本,之前在台式机上愉快的玩耍的时候键盘上的F键直接按一下就可以实现相应的功能, ...
- ES6 之 Proxy
概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改. Proxy 可以理解在目标对象架设一个“拦截”层外界对该对象的访问都必须先通过这层拦截,因此提供了一种机制可以对外界的访问进行 ...
- Power BI角色控制
Case:企业的数据分析报表经常需要进行权限控制,根据读者的部门或职位,决定他可以看到的数据.例如,A部门的人只能查看A部门的数据,B部门的人只能查看B部门的数据,而领导层则可以看到所有的数据. 1, ...
- 超级简单 一分钟实现react-native屏幕适配
今天因为react-native的style只能给width和height设置数字 没有react上的vw和vh 因为之前经常用vh vw 感觉不适应 找到了一个新的方法 使用Demension模块 ...
- Bean XML 配置(3)- 依赖注入配置
Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...