canvas学习笔记(一)
canvas是HTML5的新元素之一。使用canvas可以直接在HTML上进行图形操作,所以它具有极大的应用价值。canvas元素本身不具有绘图能力,它需要借助JavaScript来实现绘图功能。
canvas的限制:
- canvas绘制的图形是静态的,如果要让所画的图形动起来,则需要画出每一帧的图形。
- 在使用canvas时,需要考虑用户的浏览器和使用环境。
- canvas目前只是一张二维画布,要想实现三维效果,需要借助第三方类库,如three.js或者Papervision3D等。
使用canvas,只需要在HTML5中添加canvas元素即可:
<canvas id="myCanvas" width="200" height="100"></canvas>
通过id获取canvas元素:
var canvas = document.createElementById("myCanvas");
获取CanvasRenderingContext2D对象(绘图对象):
var context = canvas.getContext("2d");
设置线条宽度:
context.lineWidth = 10;
设置线条颜色:
context.strokeStyle = "red"; context.strokeStyle = "#ff0000"; context.strokeStyle = "rgb(0,0,0)";
设置线帽样式:
context.lineCap = 'butt'; context.lineCap = 'round'; context.lineCap = 'square';

设置填充颜色:
context.fillStyle = "red"; context.fillStyle = "#ff0000"; context.fillStyle = "rgb(0,0,0)";
创建一个新的路径:
context.beginPath();
设置路径的起始点:
context.moveTo(x, y);
移动画笔至某坐标(产生路径):
context.lineTo(x, y);
绘制路径:
context.stroke();
绘制矩形:
context.strokeRect(x, y, w, h); // x,y 左上顶点坐标 // w 矩形宽度 // h 矩形长度
context.rect(x, y, w, h); //功能与context.strokeRect相同
绘制实心矩形:
context.fillRect(x, y, w, h);
画圆:
context.arc(x, y, r, b, e, bool); // x,y 圆心坐标 // r 半径 // b 起始弧度 // e 终止弧度 // bool 是否逆时针绘制
注意:第4、5个参数传入的是圆弧的弧度,如果要画30度的角,则需将其转化为弧度:30*Math.PI/180。
画圆弧:
context.arcTo(P1x, P1y, p2x, p2y, r) // 当前点:P // 所绘制的圆弧与线段PP1、PP2相切 // 圆弧半径为: r
擦除canvas:
canvas.clearRect(x, y, w, h);
canvas学习笔记(一)的更多相关文章
- canvas学习笔记、小函数整理
http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...
- canvas学习笔记,实用知识点总结(上)
本博客是本人日常学习笔记,作为重要知识点的总结记录,随笔风格可能更倾向于个人的学习习惯和方式,若对您有帮助十分荣幸,若存在问题欢迎互相学习探讨,前端小白一枚在此恭候. 一.基本使用规则 1.创建画布 ...
- canvas学习笔记(下篇) -- canvas入门教程--保存状态/变形/旋转/缩放/矩阵变换/综合案例(星空/时钟/小球)
[下篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...
- canvas学习笔记(中篇) -- canvas入门教程-- 颜色/透明度/渐变色/线宽/线条样式/虚线/文本/阴影/图片/像素处理
[中篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...
- canvas学习笔记(上篇)-- canvas入门教程 -- canvas标签/方块/描边/路径/圆形/曲线
[上篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...
- canvas学习笔记一
为了研究pixi库,就顺带从头到位学习下canvas吧 判断支持力度 var webgl = (function() { try { var canvas = document.createEleme ...
- canvas学习笔记:canvas对图片的像素级处理--ImageData的应用
学习了canvas的基本绘图功能后,惊喜的发现canvas对图片数据也有相当强大的处理功能,能够从像素级别操作位图,当然[lte ie8]不支持. 主要的函数有三个: ctx.createImageD ...
- canvas学习笔记(一)-认识canvas
canvas是html5新增的一个标签,主要用于图形的绘制.我们可以把它理解为是浏览器给我们提供了一个画板,至于要绘制怎样的画卷,就看神笔马良你的主意了.而在canvas上绘制图形使用的笔,就是js了 ...
- 【canvas学习笔记一】基本认识
<canvas>标签定义了一块画布,画布可以在网页中绘制2D和3D图象,现在先学习如何绘制2D图象,绘制3D图象属于WebGL的内容(也就是网页版的OpenGL,3D图形接口). 属性 & ...
- 【canvas学习笔记二】绘制图形
上一篇我们已经讲述了canvas的基本用法,学会了构建canvas环境.现在我们就来学习绘制一些基本图形. 坐标 canvas的坐标原点在左上角,从左到右X轴坐标增加,从上到下Y轴坐标增加.坐标的一个 ...
随机推荐
- unix设计哲学
说到Unix为我们所带来的软件开发的哲学,我必需要说一说.Unix遵循的原则是KISS(Keep it simple, stupid).在http://en.wikipedia.org/wiki/Un ...
- 深入了解Map
联系 Java中的Map类似于OC的Dictionary,都是一个个键值对组成,一键对应一值.我在之前的文章中讲解过Set,其实在JAVA底层Set依赖的也是Map,那我们都知道,Set是单列的(只有 ...
- Struts2 中的数据传输的几种方式
1. 如何将参数从界面传递到Action? 你可以把Struts2中的Action看做是Struts1的Action+ActionForm,即只需在Action中定义相关的属性(要有gette ...
- 大型B2C网站高性能可伸缩架构技术探秘
大型B2C网站高性能可伸缩架构技术探秘 2010-07-21 08:51 狂放不羁 JavaEye 字号:T | T 向您介绍大型B2C网站高性能的网站架构技术,包括缓存的使用.应用程序和数据库的拆分 ...
- 我的AngularJS学习轨迹
开始接触Anguljar可能是在2013年初,那个时候的版本1.0.*,那个时候国内主要的中文资料AngularJS学习笔记:http://zouyesheng.com/angular.html,an ...
- Ocelot中文文档-Qos服务质量
目前Ocelot支持一种QoS功能. 如果您希望在请求向下游服务时使用断路,则可以在ReRoute中进行设置. 这个功能使用了一个名为Polly的.NET库,这个库很棒,在这里可以找到它. 添加如下配 ...
- 使用Navicat连接阿里云服务器上的MySQL数据库--转
手把手教你如何正确连接阿里云服务器上的数据库: 1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示. 2.因为是连接服务器上的MySQL,所以我们使用SSH连接, ...
- Flask类的属性和方法大全
Flask Property__class____dict____doc____module__app_ctx_globals_classconfig_classdebugdefault_config ...
- Django中数据库表的关联与创建(语言:python)
首先选择选用的数据库,(本人选用django(1.11.8版本)) 在主项目settings中操作如下: DATABASES = { 'default': { 'ENGINE': 'django.db ...
- Web3与智能合约交互实战
写在前面 在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互.这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dap ...