Home > Store > Web Services > XML

Core HTML5,Rough Cuts: Volume 1:  Canvas

Core HTML5,Rough Cuts: Volume 1: Canvas

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Also available in other formats.

Description

  • Copyright 2012
  • Dimensions: 7" x 9-1/8"
  • Pages: 752
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-13-276164-5
  • ISBN-13: 978-0-13-276164-2

This is the Rough Cut version of the printed book.

One of HTML5’s most exciting features, Canvas provides a powerful 2D graphics API that lets you implement everything from word processors to video games. In Core HTML5 Canvas, best-selling author David Geary presents a code-fueled, no-nonsense deep dive into that API, covering everything you need to know to implement rich and consistent web applications that run on a wide variety of operating systems and devices.

Succinctly and clearly written, this book examines dozens of real-world uses of the Canvas API, such as interactively drawing and manipulating shapes, saving and restoring the drawing surface to temporarily draw shapes and text, and implementing text controls. You’ll see how to keep your applications responsive with web workers when you filter images, how to implement smooth animations, and how to create layered, 3D scrolling backgrounds with parallax. In addition, you’ll see how to implement video games with extensive coverage of sprites, physics, collision detection, and the implementation of a game engine and an industrial-strength pinball game. The book concludes by showing you how to implement Canvas-based controls that you can use in any HTML5 application and how to use Canvas on mobile devices, including iOS5. This authoritative Canvas reference covers 

  • The canvas element—using it with other HTML elements, handling events, printing a canvas, and using offscreen canvases
  • Shapes—drawing, dragging, erasing, and editing lines, arcs, circles, curves, and polygons; using shadows, gradients, and patterns
  • Text—drawing, positioning, setting font properties; building text controls
  • Images—drawing, scaling, clipping, processing, and animating
  • Animations—creating smooth, efficient, and portable animations
  • Sprites—implementing animated objects that have painters and behaviors
  • Physics—modeling physical systems (falling bodies, pendulums, and projectiles), and implementing tweening for nonlinear motion and animation
  • Collision detection—advanced techniques, clearly explained
  • Game development—all aspects of game development, such as time-based motion and high score support, implemented in a game engine
  • Custom controls—infrastructure for implementing custom controls; implementing progress bars, sliders, and an image panner
  • Mobile applications—fitting Canvas apps on a mobile screen, using media queries, handling touch events, and specifying iOS5 artifacts, such as app icons 

Throughout the book, Geary discusses high-quality, reusable code to help professional developers learn everything they really need to know, with no unnecessary verbiage. All of the book’s code and live demonstrations of key techniques are available at corehtml5canvas.com.

Sample Content

Table of Contents

Preface xv

Acknowledgments xxiii

About the Author xxv

 

Chapter 1: Essentials 1

1.1 The canvas Element 1

1.2 Canvas Contexts 8

1.3 Canonical Examples in This Book 12

1.4 Getting Started 14

1.5 Fundamental Drawing Operations 22

1.6 Event Handling 26

1.7 Saving and Restoring the Drawing Surface 33

1.8 Using HTML Elements in a Canvas 36

1.9 Printing a Canvas 46

1.10 Offscreen Canvases 51

1.11 A Brief Math Primer 53

1.12 Conclusion 64

Chapter 2: Drawing 65

2.1 The Coordinate System 67

2.2 The Drawing Model 68

2.3 Drawing Rectangles 70

2.4 Colors and Transparency 72

2.5 Gradients and Patterns 76

2.6 Shadows 83

2.7 Paths, Stroking, and Filling 88

2.8 Lines 103

2.9 Arcs and Circles 124

2.10 Bézier Curves 137

2.11 Polygons 144

2.12 Advanced Path Manipulation 150

2.13 Transformations 170

2.14 Compositing 181

2.15 The Clipping Region 187

2.16 Conclusion 198

Chapter 3: Text 201

3.1 Stroking and Filling Text 202

3.2 Setting Font Properties 207

3.3 Positioning Text 210

3.4 Implementing Text Controls 225

3.5 Conclusion 252

Chapter 4: Images and Video 253

4.1 Drawing Images 254

4.2 Scaling Images 259

4.3 Drawing a Canvas into a Canvas 266

4.4 Offscreen Canvases 270

4.5 Manipulating Images 274

4.6 Clipping Images 302

4.7 Animating Images 306

4.8 Security 312

4.9 Performance 313

4.10 A Magnifying Glass 321

4.11 Video Processing 328

4.12 Conclusion 337

Chapter 5: Animation 339

5.1 The Animation Loop 340

5.2 Calculating Frame Rates 358

5.3 Scheduling Tasks at Alternate Frame Rates 359

5.4 Restoring the Background 360

5.5 Double Buffering 364

5.6 Time-Based Motion 367

5.7 Scrolling the Background 370

5.8 Parallax 377

5.9 User Gestures 383

5.10 Timed Animations 385

5.11 Animation Best Practices 390

5.12 Conclusion 391

Chapter 6: Sprites 393

6.1 Sprites Overview 394

6.2 Painters 398

6.3 Sprite Behaviors 411

6.4 Sprite Animators 417

6.5 A Sprite-Based Animation Loop 424

6.6 Conclusion 425

Chapter 7: Physics 427

7.1 Gravity 428

7.2 Warping Time 450

7.3 Time-Warp Functions 456

7.4 Warping Motion 458

7.5 Warping Animation 473

7.6 Conclusion 482

Chapter 8: Collision Detection 483

8.1 Bounding Areas 483

8.2 Bouncing Off Walls 488

8.3 Ray Casting 490

8.4 The Separating Axis Theorem (SAT) and Minimum Translation Vector (MTV) 495

8.5 Conclusion 541

Chapter 9: Game Development 543

9.1 A Game Engine 544

9.2 The Ungame 572

9.3 A Pinball Game 589

9.4 Conclusion 614

Chapter 10: Custom Controls 615

10.1 Rounded Rectangles 617

10.2 Progress Bars 625

10.3 Sliders 631

10.4 An Image Panner 643

10.5 Conclusion 655

Chapter 11: Mobile 657

11.1 The Mobile Viewport 659

11.2 Media Queries 666

11.3 Touch Events 671

11.4 iOS5 677

11.5 A Virtual Keyboard 682

11.6 Conclusion 701

Index 703

Updates

Submit Errata

More Information