1.从线条开始

HTML
<canvas id="canvas"></canvas>
Javascript
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d")      
  • canvas.width
  • canvas.height
  • canvas.getContext("3d")
 
 
moveTo(x,y)
lineTo(x,y)
 
beginPath()
closePath()
 
lineWidth
strokeStyle
fileStyle
 
fill()
stroke()
 
绘制矩形
rect(x,y,width,height)
 
fillRect(x,y,width,height)
strokeRect(x,y,width,height)
 
2.线条属性

  • lineWidth
  • lineCap = "but" (default)
                        "round"
                        "square"
  • lineJion = "miter"(default)
                        "bevel"
                        "round"
  • miterLimit
3.星空和图片变换

save()
restore()
 
translate(x,y)
retate(deg)
scale(sx,sy)
 
transform(a,b,c,d,e,f)
setTransform(a,b,c,d,e,f)
 
4.渐变色和纹理

fillStyle = color                         fillStyle = color                                                         
               gradient                                   #ffffff
               image                                      #642
               canvas                                    reb(255,128,0)              
               video                                       reba(100,100,100,0.8)
                                                               hsl(20,62%,28%)
                                                               hsla(40,82%,33%,0.6)
                                                                red
 
 
fillStyle = gradient   
var gra=context.creatLineatGradient(xstart,ystart,xend,yend)
 
Radial Gradient
var gra=context.creatRadialGradient(x0,y0,r0,x1,y1,r1)
 
gra.addColorStop(stop,color)
 
 
fillStyle = image || canvas || video
createPattern(img,       repeat-style)
createPattern(canvas, repeat-style)
createPattern(video,    repeat-style)
 
repeat-style : no-repeat
                      repeat-x
                      repeat-y
                      repeat
 
strokeStyle 也同样有以上所有特性
 
5.曲线的绘制

 
context.arc(centerx,centery,radius,startingAngle.endingAngle,anticlockwise = false)
 
content.arcTo(x1,y1,x2,y2,redius)
 
贝塞尔曲线
context.quadraticCurveTo(x1,y1,x2,y2)
 
context.bezeirCurveTo(x1,y1,x2,y2,x3,y3)
 
6.文字渲染

context.font="bold 40px Arial "
 
context.fillText(string,x,y,[maxlen])
 
context.strokeText(string ,x,y,[maxlen])
 
font:  默认值 “20px sans-serif”
         context.font=  font-style font-variant font-weight  font-sie font-family
 
context.textAlign=
left || center || right  
水平方向https://app.yinxiang.com/Home.action#b=193344e8-df83-482a-adb0-
e7a9cfe48751&st=p&n=8846726d-9006-4772-9e7f-68800fe0d3b0
context.textBaseline= top || middle || bottom || alphabetic(default) || ideographic || hanging  垂直方向
 
context.measureText(string).width  (文本度量)
 
7Canvas高级内容

context.shadowColor 
context.shadowOffsetX
context.shadowOffsetY
context.shadowBlur
 
globalAlpha  全局透明度
globleCompositeOperation (11中赋值)
 
context.clip()  探照定效果
 
非零环绕原则  (同心圆)
 
context.isPointInPath(x,y)
 
 
 
 
8.canvas标准

w3c
http://www.w3.org/TR/2dcontext/
 
WHATWG
 
convas.context 扩展
CanvasRenderingContext2D.prototype.fillStart = function(){

}//自己定义context函数

 
canvas 兼容性
canvas 兼容ie 6,7,8
 
<!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]-->

//github中有解释 https://github.com/arv/ExplorerCanvas

canvas图形库

canvasplus   https://code.google.com/p/canvasplus

Artisan JS   http://artisanjs.com

Rgraph       https://roopons.com.au/wp-content/plugins/viral-options/rgraph

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Canvas 笔记(持续更新中)的更多相关文章

  1. react-navigation 使用笔记 持续更新中

    目录 基本使用(此处基本使用仅针对导航头部而言,不包含tabbar等) header怎么和app中通信呢? React-Navigation是目前React-Native官方推荐的导航组件,代替了原用 ...

  2. GOF 的23种JAVA常用设计模式 学习笔记 持续更新中。。。。

    前言: 设计模式,前人总结下留给后人更好的设计程序,为我们的程序代码提供一种思想与认知,如何去更好的写出优雅的代码,23种设计模式,是时候需要掌握它了. 1.工厂模式 大白话:比如你需要一辆汽车,你无 ...

  3. BLE资料应用笔记 -- 持续更新

    BLE资料应用笔记 -- 持续更新 BLE 应用笔记 小书匠 简而言之,蓝牙无处不在,易于使用,低耗能和低使用成本.'让我们'更深入地探索这些方面吧. 蓝牙无处不在-,您可以在几乎每一台电话.笔记本电 ...

  4. 痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手 ...

  5. 微信小程序练习笔记(更新中。。。)

    微信小程序练习笔记 微信小程序的练习笔记,用来整理思路的,文档持续更新中... 案例一:实现行的删除和增加操作  test.js // 当我们在特定方法中创建对象或者定义变量给与初始值的时候,它是局部 ...

  6. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  7. Atom使用记录(持续更新中)

    部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进 ...

  8. Pig基础学习【持续更新中】

    *本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...

  9. Pig语言基础-【持续更新中】

      ***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.***   Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...

  10. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

随机推荐

  1. ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]

    ActiveX 添加测试工程 1.新建工程MFC application, 2.添加完毕,在main Dialog中, 右键[Insert Activex Control],选择你的ActiveX控件 ...

  2. 2015年10月22日CSS学习笔记

    XHTML1.0对HTML4.0的改进 借鉴了XML的写法,语法更加严格. 把页面的内容和样式分离了,废弃了html4中的表示样式的标签和属性.推荐使用css来描述页面的样式. CSS样式的优先级 ! ...

  3. mysql日志清理

    mysql bin-log 日志清理 发现mysql数据库目录中bin-log中日志文件非常大 [root@localhost var]# du -sh mysql-bin* | sort 1020K ...

  4. Galgame引擎编写,图像层

    BG类层,立绘层,字符层,ui层.目前还没有好的方法将这些层统一为一种概念,排序也没有考虑,Game逻辑部分管理BG, ACTOR层. typedef enum { SF_BAD = -, SF_HI ...

  5. lua 中pairs 和 ipairs区别

    lua 中pairs 和 ipairs区别 标准库提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的 (s ...

  6. 冒泡算法(C++模板实现)

    冒泡排序 从整体上看,冒泡排序是一种稳定排序,即排序完成后,原本序列中的键值相等的元素相对位置不会发生改变.算法的时间复杂度是O(n2),空间复杂度为O(1),即这是一个"就地算法" ...

  7. 如何解决Python脚本在Linux和Windows上的格式问题

    python是一种对缩进有严格要求的语言, Python脚本可以使用非常多的工具进行编写,笔者在Linux系统使用JEdit进行Python脚本编写,由于在Linux编写脚本比较痛苦,比如想一眼看出相 ...

  8. oc学习之路----APNS消息推送从证书到代码(2015年4月26号亲试可用)

    前言:看这篇博客之前要准备:首先的有一个99刀的个人开发者账号或者199刀的企业开发者账号,其次你用的是apns消息推送,(本人之前四处打听有没有其他消息推送的方法:收获如下:首先如果想做到apns的 ...

  9. 理解SQL Server中索引的概念

    T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他   简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能 ...

  10. oracl使用DataBase Configuration Assistant创建、删除数据库

    原文:oracl使用DataBase Configuration Assistant创建.删除数据库 可以使用DataBase Configuration Assistant来创建一个心得数据库.Da ...