TYPESCRIPT图形渲染实战:2D架构设计与实现

本书特色

[

本书使用微软*新的TypeScript语言,以面向接口及泛型的编程方式,采用HTML5中的Canvas2D绘图API,实现了一个2D动画精灵系统,并在该精灵系统上演示了精心设计的与图形数学变换相关的Demo。通过阅读本书,读者可以系统地掌握TypeScript语言、面向接口和泛型的编程方式、Canvas2DAPI绘图、图形数学、数据结构及重要的设计模式。本书共10章,分为4篇。第1篇TypeScript篇,主要介绍了如何构建TypeScript开发、编译和调试环境,以及如何使用TypeScript实现Doom3词法解析器;第2篇Canvas2D篇,主要介绍了动画与Application类,以及如何使用Canvas2D绘图;第3篇图形数学篇,主要介绍了坐标系变换、向量数学及基本形体的点选、矩阵数学及贝塞尔曲线;第4篇架构与实现篇,主要介绍了精灵系统、优美典雅的树结构及场景图系统。本书特别适合对图形、游戏和UI开发感兴趣的读者阅读,也适合需要系统学习图形开发的人员阅读。另外,本书还适合JavaScript程序员及想从C/C 、Java、C#等转HTML5开发的程序员阅读。

]

内容简介

[

本书使用微软*新的TypeScript语言,以面向接口及泛型的编程方式,采用HTML5中的Canvas2D绘图API,实现了一个2D动画精灵系统,并在该精灵系统上演示了精心设计的与图形数学变换相关的Demo。通过阅读本书,读者可以系统地掌握TypeScript语言、面向接口和泛型的编程方式、Canvas2DAPI绘图、图形数学、数据结构及重要的设计模式。本书共10章,分为4篇。篇TypeScript篇,主要介绍了如何构建TypeScript开发、编译和调试环境,以及如何使用TypeScript实现Doom3词法解析器;第2篇Canvas2D篇,主要介绍了动画与Application类,以及如何使用Canvas2D绘图;第3篇图形数学篇,主要介绍了坐标系变换、向量数学及基本形体的点选、矩阵数学及贝塞尔曲线;第4篇架构与实现篇,主要介绍了精灵系统、优美典雅的树结构及场景图系统。本书特别适合对图形、游戏和UI开发感兴趣的读者阅读,也适合需要系统学习图形开发的人员阅读。另外,本书还适合JavaScript程序员及想从C/C++、Java、C#等转HTML5开发的程序员阅读。

]

目录

目录前言第1篇 TypeScript篇第1章 构建TypeScript开发、编译和调试环境21.1 TypeScript简介21.2 安装TypeScript开发环境31.2.1 安装Node.js31.2.2 安装VS Code41.2.3 NPM全局安装TypeScript61.2.4 **个TypeScript程序71.3 使用TypeScript编译(转译)器131.3.1 生成tsconfig.json文件131.3.2 解决生成tsconfig.json文件后带来的常见问题131.3.3 自动编译TypeScript文件151.4 模块化开发TypeScript151.4.1 tsconfig.json文件中的target和module命令选项161.4.2 编写Canvas2D类导出给main.ts调用161.4.3 使用lite-server搭建本地服务器171.5 使用SystemJS自动编译加载TypeScript181.5.1 NPM本地安装TypeScript库和SystemJS库181.5.2 SystemJS直接编译TypeScript源码191.6 使用VS Code调试TypeScript源码201.6.1 安装及配置Debugger for Chrome扩展201.6.2 VS Code中单步调试TypeScript201.7 本章总结22第2章 使用TypeScript实现 Doom 3词法解析器242.1 Token与Tokenizer242.1.1 Doom3文本文件格式262.1.2 使用IDoom3Token与IDoom3Tokenizer接口262.1.3 ES 6中的模板字符串282.1.4 IDoom3Token与IDoom3Tokenizer接口的定义292.2 IDoom3Token与IDoom3Tokenizer接口的实现302.2.1 Doom3Token类成员变量的声明302.2.2 Doom3Token类变量初始化的问题312.2.3 IDoom3Token接口方法的实现322.2.4 Doom3Token类的非接口方法实现332.2.5 Doom3Tokenzier处理数字和空白符342.2.6 IDoom3Tokenizer接口方法实现342.2.7 Doom3Tokenizer字符处理私有方法352.2.8 核心的getNextToken方法362.2.9 跳过不需处理的空白符和注释372.2.10 实现_getNumber方法解析数字类型382.2.11 实现_getSubstring方法解析子字符串402.2.12 实现_getString方法解析字符串412.2.13 IDoom3Tokenizer词法解析器状态总结422.3 使用工厂模式和迭代器模式432.3.1 微软COM中创建接口的方式432.3.2 Doom3Factory工厂类432.3.3 迭代器模式442.3.4 模拟微软.NetFramework中的泛型迭代器442.3.5 IDoom3Tokenizer扩展 IEnumerator接口452.3.6 修改Doom3Tokenizer源码452.3.7 使用VS Code中的重命名重构方法462.3.8 使用迭代器解析Token462.3.9 面向接口与面向对象编程的个人感悟472.4 从服务器获取资源472.4.1 HTML加载本地资源遇到的问题482.4.2 从服务器加载资源482.4.3 使用XHR向服务器请求资源文件492.4.4 TypeScript中的类型别名502.4.5 使用doGet请求文本文件并解析512.4.6 解决仍有空白字符输出问题522.4.7 实现doGetAsync异步请求方法522.4.8 声明TypeScript中的回调函数542.4.9 调用回调函数552.5 本章总结57第2篇 Canvas2D篇第3章 动画与Application类603.1 requestAnimationFrame方法与动画603.1.1 HTML中不间断的循环603.1.2 requestAnimationFrame与监视器刷新频率623.1.3 基于时间的更新与重绘653.2 Application类及其子类673.2.1 Application类体系结构673.2.2 启动动画循环和停止动画循环683.2.3 Application类中的更新和重绘693.2.4 回调函数的this指向问题703.2.5 函数调用时this指向的Demo演示713.2.6 CanvasInputEvent及其子类733.2.7 使用getBoundingRect方法变换坐标系753.2.8 将DOM Event事件转换为CanvasInputEvent事件773.2.9 EventListenerObject与事件分发773.2.10 让事件起作用793.2.11 Canvas2DApplication子类和WebGLApplication子类793.3 测试及修正Application类803.3.1 继承并覆写Application基类的虚方法803.3.2 测试ApplicationTest类813.3.3 多态(虚函数动态绑定)823.3.4 鼠标单击事件测试833.3.5 CSS盒模型对_viewportToCanvasCoordinate的影响843.3.6 正确的_viewportToCanvasCoordinate方法实现863.4 为Application类增加计时器功能903.4.1 Timer类与TimeCallback回调函数903.4.2 添加和删除Timer(计时器)913.4.3 触发多个定时任务的操作933.4.4 测试Timer功能953.5 本章总结96第4章 使用Canvas2D绘图984.1 绘制基本几何体984.1.1 Canvas2DApplication的绘制流程984.1.2 绘制矩形Demo994.1.3 模拟Canvas2D中渲染状态堆栈1004.1.4 线段属性与描边操作(stroke)1034.1.5 虚线绘制(交替绘制线段)1054.1.6 使用颜色描边和填充1084.1.7 使用渐变对象描边和填充1104.1.8 使用图案对象描边和填充1134.1.9 后续要用到的一些常用绘制方法1154.2 绘制文本1174.2.1 封装fillText方法1174.2.2 文本的对齐方式1194.2.3 自行实现文本对齐效果1214.2.4 计算文本高度算法1224.2.5 嵌套矩形定位算法1224.2.6 fillRectWithTitle方法的实现1254.2.7 自行文本对齐实现Demo1264.2.8 font属性1284.2.9 实现makeFontString辅助方法1294.3 绘制图像130

封面

TYPESCRIPT图形渲染实战:2D架构设计与实现

书名:TYPESCRIPT图形渲染实战:2D架构设计与实现

作者:步磊峰

页数:373

定价:¥99.0

出版社:机械工业出版社

出版日期:2018-09-01

ISBN:9787111619246

PDF电子书大小:86MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注