《html5 canvas核心技術:圖形、動畫與遊戲開發》
譯者序
前言
第1章 基礎知識 1
1.1 canvas元素 1
1.1.1 canvas元素的大小與繪圖錶麵的大小 4
1.1.2 canvas元素的api 5
1.2 canvas的繪圖環境 6
1.2.1 2d繪圖環境 6
1.2.2 canvas狀態的保存與恢復 8
1.3 本書程序清單的規範格式 9
1.4 開始學習html5 10
1.4.1 規範 10
1.4.2 瀏覽器 11
1.4.3 控製颱與調試器 11
1.4.4 性能 13
1.5 基本的繪製操作 15
1.6 事件處理 18
1.6.1 鼠標事件 18
1.6.2 鍵盤事件 22
.1.6.3 觸摸事件 23
1.7 繪製錶麵的保存與恢復 23
1.8 在canvas中使用html元素 25
1.9 打印canvas的內容 32
1.10 離屏canvas 35
1.11 基礎數學知識簡介 37
1.11.1 求解代數方程 37
1.11.2 三角函數 38
1.11.3 嚮量運算 39
1.11.4 根據計量單位來推導等式 42
1.12 總結 44
第2章 繪製 45
2.1 坐標係統 46
2.2 canvas的繪製模型 47
2.3 矩形的繪製 48
2.4 顔色與透明度 50
2.5 漸變色與圖案 52
2.5.1 漸變色 52
2.5.2 圖案 54
2.6 陰影 57
2.7 路徑、描邊與填充 60
2.7.1 路徑與子路徑 63
2.7.2 剪紙效果 64
2.8 綫段 69
2.8.1 綫段與像素邊界 70
2.8.2 網格的繪製 71
2.8.3 坐標軸的繪製 72
2.8.4 橡皮筋式的綫條繪製 74
2.8.5 虛綫的繪製 79
2.8.6 通過擴展canvasrenderingcontext2d來繪製虛綫 80
2.8.7 綫段端點與連接點的繪製 81
2.9 圓弧與圓形的繪製 83
2.9.1 arc()方法的用法 83
2.9.2 以橡皮筋式輔助綫來協助用戶畫圓 85
2.9.3 arcto()方法的用法 86
2.9.4 刻度儀錶盤的繪製 88
2.10 貝塞爾麯綫 93
2.10.1 二次方貝塞爾麯綫 93
2.10.2 三次方貝塞爾麯綫 95
2.11 多邊形的繪製 97
2.12 高級路徑操作 102
2.12.1 拖動多邊形對象 102
2.12.2 編輯貝塞爾麯綫 107
2.12.3 自動滾動網頁,使某段路徑所對應的元素顯示在視窗中 115
2.13 坐標變換 116
2.13.1 坐標係的平移、縮放與鏇轉 116
2.13.2 自定義的坐標變換 119
2.14 圖像閤成 123
2.15 剪輯區域 128
2.15.1 通過剪輯區域來擦除圖像 128
2.15.2 利用剪輯區域來製作伸縮式動畫 133
2.16 總結 135
第3章 文本 137
3.1 文本的描邊與填充 137
3.2 設置字型屬性 141
3.3 文本的定位 144
3.3.1 水平與垂直定位 144
3.3.2 將文本居中 146
3.3.3 文本的度量 147
3.3.4 繪製坐標軸旁邊的文本標簽 148
3.3.5 繪製數值儀錶盤周圍的文本標簽 151
3.3.6 在圓弧周圍繪製文本 152
3.4 實現文本編輯控件 154
3.4.1 指示文本輸入位置的光標 154
3.4.2 在canvas中編輯文本 159
3.4.3 文本段的編輯 163
3.5 總結 174
第4章 圖像與視頻 175
4.1 圖像的繪製 176
4.1.1 在canvas之中繪製圖像 176
4.1.2 drawimage()方法的用法 177
4.2 圖像的縮放 179
4.3 將一個canvas繪製到另一個canvas之中 183
4.4 離屏canvas 186
4.5 操作圖像的像素 189
4.5.1 獲取圖像數據 189
4.5.2 修改圖像數據 195
4.6 結閤剪輯區域來繪製圖像 208
4.7 以圖像製作動畫 211
4.8 圖像繪製的安全問題 216
4.9 性能 216
4.9.1 對比drawimage(htmlimage)、drawimage(htmlcanvas)與putimagedata()的繪圖效率 217
4.9.2 在canvas中繪製另一個canvas與繪製普通圖像之間的對比;在繪製時縮放圖像與保持原樣之間的對比 217
4.9.3 遍曆圖像數據 218
4.10 放大鏡 222
4.10.1 使用離屏canvas 224
4.10.2 接受用戶從文件係統中拖放進來的圖像 225
4.11 視頻處理 227
4.11.1 視頻格式 227
4.11.2 在canvas中播放視頻 229
4.11.3 視頻處理 230
4.12 總結 234
第5章 動畫 235
5.1 動畫循環 235
5.1.1 通過requestanimationframe()方法讓瀏覽器來自行決定幀速率 237
5.1.2 internet explorer瀏覽器對requestanimationframe()功能的實現 241
5.1.3 可移植於各瀏覽器平颱的動畫循環邏輯 241
5.2 幀速率的計算 248
5.3 以不同的幀速率來執行各種任務 249
5.4 恢復動畫背景 250
5.4.1 利用剪輯區域來處理動畫背景 250
5.4.2 利用圖塊復製技術來處理動畫背景 252
5.5 利用雙緩衝技術繪製動畫 253
5.6 基於時間的運動 254
5.7 背景的滾動 257
5.8 視差動畫 261
5.9 用戶手勢 264
5.10 定時動畫 266
5.10.1 秒錶 266
5.10.2 動畫計時器 269
5.11 動畫製作的最佳指導原則 270
5.12 總結 271
第6章 精靈 272
6.1 精靈概述 273
6.2 精靈繪製器 275
6.2.1 描邊與填充繪製器 275
6.2.2 圖像繪製器 279
6.2.3 精靈錶繪製器 281
6.3 精靈對象的行為 284
6.3.1 將多個行為組閤起來 285
6.3.2 限時觸發的行為 287
6.4 精靈動畫製作器 289
6.5 基於精靈的動畫循環 293
6.6 總結 294
第7章 物理效果 295
7.1 重力 295
7.1.1 物體的下落 296
7.1.2 拋射體彈道運動 298
7.1.3 鍾擺運動 307
7.2 時間軸扭麯 311
7.3 時間軸扭麯函數 315
7.4 時間軸扭麯運動 317
7.4.1 沒有加速度的綫性運動 319
7.4.2 逐漸加速的緩入運動 320
7.4.3 逐漸減速的緩齣運動 322
7.4.4 緩入緩齣運動 323
7.4.5 彈簧運動與彈跳運動 324
7.5 以扭麯後的幀速率播放動畫 326
7.6 總結 332
第8章 碰撞檢測 333
8.1 外接圖形判彆法 333
8.1.1 外接矩形判彆法 333
8.1.2 外接圓判彆法 334
8.2 碰到牆壁即被彈迴的小球 336
8.3 光綫投射法 337
8.4 分離軸定理(sat)與最小平移嚮量(mtv) 340
8.4.1 使用分割軸定理檢測碰撞 340
8.4.2 根據最小平移嚮量應對碰撞 362
8.5 總結 373
第9章 遊戲開發 374
9.1 遊戲引擎 374
9.1.1 遊戲循環 376
9.1.2 加載圖像 382
9.1.3 同時播放多個聲音 384
9.1.4 鍵盤事件 385
9.1.5 高分榜 386
9.1.6 遊戲引擎源代碼 387
9.2 遊戲原型 395
9.2.1 遊戲原型程序的html代碼 396
9.2.2 原型程序的遊戲循環 399
9.2.3 遊戲原型程序的加載畫麵 400
9.2.4 暫停畫麵 402
9.2.5 按鍵監聽器 404
9.2.6 遊戲結束及高分榜 404
9.3 彈珠颱遊戲 407
9.3.1 遊戲循環彈珠 408
9.3.2 彈珠精靈 410
9.3.3 重力與摩擦力 411
9.3.4 彈闆的移動 412
9.3.5 處理鍵盤事件 413
9.3.6 碰撞檢測 416
9.4 總結 425
第10章 自定義控件 426
10.1 圓角矩形控件 427
10.2 進度條控件 433
10.3 滑動條控件 437
10.4 圖像查看器控件 446
10.5 總結 454
第11章 移動平颱開發 455
11.1 移動設備的視窗 456
11.2 媒體特徵查詢技術 461
11.2.1 媒體特徵查詢與css 461
11.2.2 用javascript程序應對媒體特徵的變化 462
11.3 觸摸事件 464
11.3.1 touchevent對象 464
11.3.2 touchlist對象 465
11.3.3 touch對象 466
11.3.4 同時支持觸摸事件與鼠標事件 466
11.3.5 手指縮放 468
11.4 ios5 469
11.4.1 應用程序圖標及啓動畫麵 469
11.4.2 利用媒體特徵查詢技術設置ios5係統的應用程序圖標及啓動畫麵 470
11.4.3 以不帶瀏覽器飾件的全屏模式運行應用程序 471
11.4.4 應用程序的狀態欄 471
11.5 虛擬鍵盤 472
11.6 總結 485
· · · · · · (
收起)