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. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.1.3

    Use the QR decomposition to prove Hadamard's inequality: if $X=(x_1,\cdots,x_n)$, then $$\bex |\det ...

  2. HDU-1026 Ignatius and the Princess I(BFS) 带路径的广搜

      此题需要时间更少,控制时间很要,这个题目要多多看, Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)    Me ...

  3. Datatable转换成List实体对象列表 几个实例

    一, /// <summary> /// 将Datatable转换为List集合 /// </summary> /// <typeparam name="T&q ...

  4. Curl之获取外网IP

    获取外网IP:curl -s ifconfig.me

  5. 修改ruby gem源为ruby.taobao.org

    由于网络原因,导致从rubygems.org下载gem文件较慢或者间歇性的连接失败,所以可以修改gem源为ruby.taobao.org.具体可以用 gem install rails -V 来查看执 ...

  6. 【原】CAVLC的个人理解

    4x4数据块经过预测.变换.量化后,非零系数主要集中在低频部分,而高频部分大部分是零.数据经过zig-zag扫描后,从左->右(低频->高频),DC系数附近的系数非常大,而高频的非零系数大 ...

  7. bzoj 1924 [Sdoi2010]所驼门王的宝藏(构图,SCC,DP)

    Description Input 第一行给出三个正整数 N, R, C. 以下 N 行,每行给出一扇传送门的信息,包含三个正整数xi, yi, Ti,表示该传送门设在位于第 xi行第yi列的藏宝宫室 ...

  8. linux 密码安全脚本

    #!/bin/bash #by:osx1260@.com DIESO=/etc/pam.d PAMSO=$(ls $DIESO/* |awk -F'/' '{print $4}') NEPAMUN=' ...

  9. Hbase集群无法关闭

    执行stop-hbase.sh关闭Hbase服务器,提示一直在等待,查阅了很多网上的资料找到了答案.因为hbase的主要信息存储在zookeeper集群中,zookeeper集群没有正常启动会导致hb ...

  10. Android完美解决输入框EditText隐藏密码打勾显示密码问题

    长话短说,一共有两种方法.首先你需要在布局文件里面给EditText设置一个android:inputType="numberPassword"属性.我这里默认规定密码只能是数字了 ...