第十五章 使用canvas绘图

1、要使用<canvas>元素,必须先设置其width和height属性。

2、要在这块画布上绘图,需要先取得绘图上下文,取得绘图上下文对象的引用,需要调用getContext()方法并传入上下文的名字,如2d。使用前先对getContext进行能力检测。

3、使用toDataURL()方法可以导出绘制的图像。

4、2D上下文。2D上下文的坐标开始于左上角,左上角为(0,0)。

1、填充和描边。两个属性:fillStyle和strokeStyle。

2、绘制矩形。唯一一种可以直接在2d上下文中绘制的形状。与之有关的方法:fillRect()/strokeRect()/clearRect()。接受四个参数:x/y/宽/高。描边线条宽度由lineWidth控制,线条末端形状由lineCap控制,线条相交形状由lineJoin控制。

3、绘制路径。

4、文本。textAlign和textBaseline中的值的含义:【给定的点】是文本的【值】。比如textAlign中的start,表示给定的点是文本的start,所以看起来文字靠右。textBaseline中值为top时,表示给定的点是文本的top线,所以文字是靠下的。measureText()方法用于辅助确定文本的大小。

var fontSize=100;
context.font=fontSize+"px Arial"; while (context.measureText("Hello World!").width>140) {
fontSize--;
context.font=fontSize+"px Arial";
}

5、变换。save()方法保存设置和变换,restore()方法调用。先进后出。

6、绘制图像。drawImage()方法。

7、阴影。

8、渐变。渐变的坐标要与绘制的图形坐标相匹配。线性渐变/放射渐变。

9、模式。模式其实就是重复的图像,可以用来填充或描边图形。调用createPattern()方法创建一个新模式。注意:将填充样式设置为模式对象,指标是在填充区域内显示图像,而不是从填充位置开始绘制图像。图像是从原点开始的。

10、使用图像数据。通过getImageData()取得原始图像数据,返回的对象是ImageData的实例,有三个属性:width/height/data。data是个数组,保存每个像素的rgba。可利用data使图像彩色变黑白。

11、合成。会应用到所有绘制操作的属性:globalAlpha和globalCompositionOperation。前者设置全局透明度,后者表示后绘制的图形与已绘制图形的结合方法。

js-JavaScript高级程序设计学习笔记12的更多相关文章

  1. JavaScript高级程序设计---学习笔记(一)

    今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩 ...

  2. javascript高级程序设计学习笔记

    javascript高级程序设计,当枕头书已经好久了~zz  现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...

  3. javascript 高级程序设计 学习笔记

    <!--<script> // 异步请求封装 IE6即以上浏览器 // ajax(url,fnSucc,selectID,fnFaild) //url 请求地址 //fnSucc 异 ...

  4. JavaScript高级程序设计---学习笔记(二)

    面向对象程序设计1.属性类型.定义多属性.读取属性特性对象的属性在创建时都带有一些特征值,JavaScript通过这些特征值来定义它们的行为.这些特性是为了实现JavaScript引擎用的,因此不能直 ...

  5. JavaScript高级程序设计学习笔记第十章--DOM

    1.DOM:文档对象模型,是针对 HTML 和 XML 文档的一个 API(应用程序编程接口). 2.DOM 可以将任何 HTML 或 XML 文档描绘成一个由多层节点构成的结构. 3.文档节点是每个 ...

  6. JavaScript高级程序设计学习笔记--DOM

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口). Document类型 文档的子节点 虽然DOM标准规定Document节点的子节点可以是DocumentType,Ele ...

  7. Javascript高级程序设计学习笔记一

    看完w3school的javascript的概念,有点基础,开始红皮书的路程,今晚总结前二章的心得. 第一章:javascript简介 重点是javascript的实现是由 ECMAScript(核心 ...

  8. JavaScript高级程序设计---学习笔记(五)

    1.2D上下文 1)填充与描边 填充和描边的两个操作取决于两个属性:fillStyle和strokeStyle.两个属性的值可以是字符串.渐变对象或模式对象,默认值都是#000000 例: html: ...

  9. JavaScript高级程序设计学习笔记--面向对象的程序设计(二)-- 继承

    相关文章: 面向对象的程序设计(一) — 创建对象 http://www.cnblogs.com/blackwood/archive/2013/04/24/3039523.html 继承 继承是OO语 ...

  10. JavaScript高级程序设计学习笔记第八章--BOM

    1.间歇调用和超时调用: 超时调用:需要使用 window 对象的 setTimeout()方法,它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒).其中,第一个参数可以 ...

随机推荐

  1. swift 集合类型(二)

    说到swift的集合类型,就不得不谈到Dictionary.包含一个键值对组合的集合. var air = ["name":"warner","tit ...

  2. Div和Span标签显示与隐藏

    本实例中,学习jQuery的知识,显示与隐藏网页上的div或是span标签. 实际环境中,也许是根据某些条件进行,符合条件时,对某个或是某个div或是span标签时行显示与隐藏. 主要是学习jQuer ...

  3. 【转】Sql Server参数化查询之where in和like实现详解

    转载至:http://www.cnblogs.com/lzrabbit/archive/2012/04/22/2465313.html 文章导读 拼SQL实现where in查询 使用CHARINDE ...

  4. oracle 取前10条记录

    1.oracle 取前10条记录 1) select * from tbname where rownum < 11; 2) select * from (select * from tbnam ...

  5. 【传递智慧】C++基础班公开课第六期培训

    11月11日 二 213 进程间关系和守护进程 11月12日 三 213 信号 11月13日 四     11月14日 五 213 线程(创建,销毁,回收) 11月15日 六 213 线程同步机制 1 ...

  6. 【AS3】Flash与后台数据交换四种方法整理

    随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...

  7. 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能

    以往的Android开发有一个头疼的且拖慢速度的问题,就是你每改一行代码要想看到结果必须要编译运行到手机或者模拟器上,而且需要从头(可能是登录界面)一直点击到你修改的界面为止.开发一个完整的Andro ...

  8. 关于浏览器URL中出现会话验证字符说明

    服务器安装了网站安全狗,访问网站的时候会显示一串类似iissafedogccsision=7Z86v5H5z这样的会话验证信息. 安全狗官方解释 出现该字符的主要原因是用户开启了网站安全狗的CC防护的 ...

  9. jquery里面的$(this)和this都什么时候用,有什么区别

    当你用的是jquery时,就用$(this),如果是JS,就用this $(this).html( $(this).html() + " BAM! " + i ); 这个里的htm ...

  10. 在eclipse中使用第三方库总结

    一.建立user library 导入第三方jar文件,最简单的方式是:右键工程/属性/java build path/add external jars. 另一种方式是:window/prefren ...