事件处理:

HTML5应用程序是以事件来驱动的,可以在canvas中增加一个事件监听器,当事件发生时,浏览器就会调用这个监听器

//方法一
canvas.onmousedown=function(e){
//一些代码
};

//方法二
canvas.addEventListener('mousedown',function(e){
//一些代码
})

基础的数学知识简介:

代数方程:(10x+5)x2=110

三角函数:180°等于π弧度

正弦、余弦、正切:

sin(α)对边/斜边

cos(α)邻边/斜边

tan(α)对边/邻边

向量运算:大小和方向

勾股定理,任何直角三角形的斜边,等于另外两边平方和的平方根

长度为一个单位(即模为1)的向量,叫做单位向量

向量的加减

向量的点积(用以判断物体碰撞后移动方向)

一帧就是一副静止的画面,连续的帧就形成动画

第二章 绘制

坐标系统:默认情况下,Canvas的坐标以canvas左上角为原点,X坐标向右增长,Y坐标向下延伸

矩形的绘制:Canvas的API提供了三个方法,分别用于矩形的清除、描边和填充

clearRect(double x,double y,double w,double h)(左上角x,y坐标,矩形的宽度和高度)

strokeRect(double x,double y,double w,double h)

fillRect(double x,double y,double w,double h)

颜色与透明度:

可以通过绘图环境的strokeStyle与fillStyle属性来设置

context.strokeStyle='red';

context.fillStyle='rgba(0,0,255,0.5)';

HSL格式的颜色相对于RBG来说更直观,RGB以硬件为导向(阴极射线管),HSL三个分量分别是色相、饱和度、亮度

渐变色与图案:

除了颜色值以外,strokeStyle与fillStyle也支持渐变色与图案

linear(线性渐变)与radial(放射渐变)

createLinearGradient()方法来创建线性渐变,需要向该方法传入两个点的x、y坐标(共4个),两点之间的连线就是canvas建立颜色渐变效果的依据,调用createLinearGradient()方法后返回一个CanvasGradient实例,将该实例作为fillStyle的值

context.fillStyle=gradient;

CanvasGradient有一个唯一的方法addColorStop(),向渐变色中增加5个“颜色停止点”,接收两个参数,一个是0~1.0之间的double值,代表颜色停止点在渐变线上的位置,另一个是DOMString类型的CSS3颜色字串值(颜色单词)

createRadialGradient()方法实现放射渐变,比createLinearGradient()多两个半径参数

图案:

Canvas元素也允许使用图案对图形和文本进行描边与填充,图案可以是image元素、canvas元素或video元素

createPattern()方法来创建图案,接收两个参数:图案本身、一个表示重复方式的字符串(repeat、repeat-x、repeat-y、no-repeat)

阴影:

不管是画的是图像还是文本,都可以通过修改绘图环境中的属性值来指定阴影效果

shadowColor:CSS3格式的颜色(设置为undefined会禁用阴影)

shadowOffsetX:从图形或文本到阴影的水平偏移(设为负值则是向左)

shadowOffsetY:从图形或文本到阴影的垂直偏移(设为负值则是向上)

shadowBlur:表示高斯模糊的数值(整数)

路径、描边与填充:

封闭路径(closed path)

开发路径(open path)

HTML5 Canvas核心技术—图形、动画与游戏开发.pdf2的更多相关文章

  1. HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版​

    <html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...

  2. HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识

    一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...

  3. Html5 Canvas核心技术(图形,动画,游戏开发)--基础知识

    基础知识 canvas 元素可以说是HTML5元素中最强大的一个,他真正的能力是通过canvas的context对象表现出来的.该环境对象可以从canvas元素身上获得. <body> & ...

  4. HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版​

    HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程 ...

  5. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf8

    第6章 精灵 精灵(sprite),它是一种可以集成入动画之中的图像对象,赋予它们各种行为,精灵并非Canvas API的一部分,,但都是从它衍生而来 本章将会实现三种设计模式:策略模式(精灵与绘制器 ...

  6. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf7

    性能 运行putImageData()比drawImage()慢,同等条件下优先考虑drawImage() 操作图像数据需要遍历大量数据,应该注意几点: 1)避免在循环体中直接访问对象属性,应当保存在 ...

  7. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf6

    操作图像的像素:getImageData() putImageData() ImageData对象 调用getImageData()方法实际是获取了一个指向ImageData对象的引用,返回的对象包含 ...

  8. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf1

    canvas元素可以说是HTML5元素中功能最强大的一个,它真正的能力是通过Canvas的context对象(绘图上下文)表现出来的 fillText()方法使用fillStyle属性来填充文本中的字 ...

  9. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf5

    文本的定位 水平与垂直定位:当使用strokeText()和fillText()绘制文本时,指定了所绘文本的X与Y坐标,还有textAlign与textBaseline两个属性 textAlign:s ...

随机推荐

  1. (hdu)5234 Happy birthday 二维dp+01背包

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5234 Problem Description Today is Gorwin’s birt ...

  2. (LightOJ 1004) Monkey Banana Problem 简单dp

    You are in the world of mathematics to solve the great "Monkey Banana Problem". It states ...

  3. phpredis

    安装php的redis扩展: http://pecl.php.net/package/redis 也可以用PHP直接连redis: http://www.cnblogs.com/kudosharry/ ...

  4. winform模拟鼠标按键

    今天朋友说被他们公司的学习网站恶心到了,下班后要他看学习资料,看完点下一页,而且一页必须停留多少时间才能点击下一页,想不看都不行,于是晚上我突发奇想要给他做一个模拟鼠标按键的程序,可以让鼠标定时间隔触 ...

  5. 『奇葩问题集锦』npm install 报错 node-pre-gyp ERR! node-pre-gyp -v v0.6.25

    gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you ...

  6. OS概论1

    1.设计现代OS的主要目标是什么? 在计算机上配置操作系统,其主要目标是:方便性,有效性,可扩充性,开放性. 一个没有OS的操作系统,就必须用机器语言书写程序,如果在计算机上配置了OS,系统便可以使用 ...

  7. HTML5:一个拖拽网页元素的例子

    关键字:HTML5, Drag&Drop, JavaScript, CSS 运行环境:Chrome <!DOCTYPE html> <html> <head> ...

  8. [转]ef获取某个表中的部分字段值

    我有个新闻表 id,title,body,createtime,author,click 使用ef4.1 仅仅读取 id,title,createtime 并显示在页面上. public static ...

  9. 定位 - MapKit - 基本使用

    /** *  Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Co ...

  10. JavaScript的OOP编程1

    首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种 version1 // 父类 function ...