CanvasRenderingContext2D对象中用于平移、旋转坐标系的方法

镜像

scale(1,-1)绘制垂直镜像;scale(-1,1)绘制水平镜像

自定义的坐标变换

transform(),多次调用会叠加效果

setTransform(),每次调用都会清除上次的效果

两个方法都用于旋转、缩放、及平移坐标系(可以根据公式传入0或其他数据)

x'=ax+cy+e

y'=bx+dy+f

坐标系旋转公式(angle弧度)

x'=x×cos(angle)-(y×sin(angle))

y'=y×cos(angle)+(x×sin(angle))

平移

x'=x+dx

y'=y+dy

缩放

x'=x×sx

y'=y×sy

错切(平行四边形)

x'=x+by

y'=y

图像合成

Canvas元素有一个globalCompositeOperation属性改变默认的图像合成行为

context.globalCompositeOperation='souce-in';

剪辑区域

设置一个区域,只有在这个区域内的操作有效,在clip()方法之前,剪辑区域是整个canvas元素

第3章 文本

Canvas绘图对象提供了3个与文本有关的方法

strokeText(text,x,y)可选的第4个参数,指定文本的最大宽度,超出则压缩

fillText(text,x,y)可选的第4个参数,指定文本的最大宽度,超出则压缩

measureText(text),返回的对象包含一个width的属性,表示你传递给该方法的文本所占据的宽度

Canvas绘图环境对象中有三个与文本相关的属性:font textAlign textBaseline

设置字型属性

Canvas默认的字型是10px sans-serif,其它值默认为normal

绘制环境对象的font属性也支持CSS3格式的字型语法,除了样式表语法所特有的属性(如inherit或initial等),碰到它们会静默失败,另外在Canvas中设置line-height属性会被忽略

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

  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核心技术—图形、动画与游戏开发.pdf2

    事件处理: HTML5应用程序是以事件来驱动的,可以在canvas中增加一个事件监听器,当事件发生时,浏览器就会调用这个监听器 //方法一canvas.onmousedown=function(e){ ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. bzoj1901:Zju2112 Dynamic Rankings

    思路:树套树,我写了两种,一种是线段树套splay,线段树维护区间信息,splay维护第k大,一种是树状数组套权值线段树(并不是什么可持久化线段树,只不过是动态开点罢了,为什么网上一大堆题解都是可持久 ...

  2. 简易的RestClient代码

    package tests; import java.io.*; import org.apache.http.HttpEntity; import org.apache.http.HttpRespo ...

  3. Oracle安装时忘记解锁scott用户的解决方案

    最近笔者开始学习Oracle,对于笔者同学安装过程出现各种问题而导致重做系统表示默哀. (1)问题1:64位操作系统安装完以后选择java.exe文件后.sqldeveloper闪退,原因是64位操作 ...

  4. TDirectory.IsRelativePath是否相对路径

    使用函数: System.IOUtils.TDirectory.IsRelativePath class function IsRelativePath(const Path: string): Bo ...

  5. Python使用re实现计算器

    re 正则表达式 计算器 海瑞博客-学习python之路•2016-12-01•Python• 59•0•A+ A- re是一门小型语言 元字符 .      通配符除了\n ^     以什么开始的 ...

  6. asp.net管道模型

    查了很多资料,终于大概弄懂管道模型(注意并非指定是asp.net范畴)是个什么概念了,其实就是从Unix移植过来的一种概念,也可以说是一种模式吧(只允许一头读,一头写,并且读完了就会自动消失). as ...

  7. 关于How,刷墙和亲戚

    对于需求而言,最宏观的概念是六字诀: Who->Where->Which->How->End->Effect:谁(Who)在什么地方(Where),对那个对象(Which ...

  8. CALayer -- 备忘

    CALayer layer是层,每个view上都会最少有一个layer,view上的可视化内容其实都是层. CALayer展示实例 let customView = UIView(frame: CGR ...

  9. Mac 配置java版本 ---- MySql数据库权限设置 --- openfire

    java -version 显示java 版本 sudo su - root 切换身份 cd /usr/local/openfire 进入openfire目录 cd bin/ 进入 bin vim o ...

  10. Python的数字类型及其技巧

    Python中的数字类型 int float fractions.Fraction decimal.Decimal 数字的舍与入 int(f):舍去小数部分,只保留整数部分,所以int(-3.8)的结 ...