Table of Contents

Introduction
   Overview
   What this Book includes
   Is This Book for You
   What Do You Need to Use This Book
   How This Book Is Organized
   Using Code Examples
   Customer Support


Chapter 1: Overview of WPF Programming
   New Features in WPF

   XAML Basics

      Why is XAML Needed?
      Creating XAML Files
      Code-Behind Files
   Your First WPF Program

      Properties in XAML
      Event Handlers in Code-Behind Files
   Code-Only Example

   XAML-Only Example


Chapter 2: WPF Graphics Basics in 2D
   2D Coordinate Systems in WPF

      Default Coordinates
      Custom Coordinates
      Custom Coordinates for 2D Charts
         2D Viewport
         Zooming and Panning
   Basic 2D Graphics Shapes

      Lines
      Rectangles and Ellipses
      Polylines
      Polygons

Chapter 3: 2D Transformations
   Basics of Matrices and Transforms

      Vectors and Points
      Scaling
      Reflection
      Rotation
      Translation
   Homogeneous Coordinates

      Translation in Homogeneous Coordinates
      Scaling in Homegeneous Coordinates
      Rotation in Homegeneous Coordinates
      Combining Transforms
   Vector and Matrix in WPF

      Vector Structure
      Matrix Structure
      Matrix Operations
      Matrix Transforms
      Creating Perpendicular Lines
   Object Transforms in WPF

      MatrixTransform Class
      ScaleTransform Class
      TranslateTransform Class
      RotateTransform Class
      SkewTransform Class
      Combining Transforms in WPF

Chapter 4: Geometry and 2D Drawing
   Path and Geometry Classes

      Line, Rectangle, and Ellipse Geometries
      GeometryGroup Class
      CombinedGeometry Class
      PathGeometry Class
         Lines and Polylines
         Arcs
         Bezier Curves
      Geometry and Mini-Language
   Interactive 2D Drawing

      Mouse Events
      Creating and Combining Shapes
      Dragging and Moving Shapes
      Hit Testing
   Custom Shapes

      Star Shape
      Arrowline
      Testing Custom Shapes

Chapter 5: Colors and Brushes
   Colors

      System Colors
      Color Picker
   Brushes

      SolidColorBrush
      LinearGradientBrush
      Custom Colormap Brush
      RadialGradientBrush
      Custom Radial Colormap Brush
      ImageBrush
      DrawingBrush
      VisualBrush
      Bitmap Effects
      Opacit Masks
   Brush Transforms

      LinearGradientBrush Transform
      RadialGradientBrush Transform
      ImageBrush Transform
      Drawing and Visual Brush Transform

Chapter 6: Animation
   WPF Animation Basics

      Property-Based Animation
      A Simple Animation in Code
   Animation and Storyboard

      Storyboard and Even Trigger
      Storyboard Animation in Code
      Animation and Timing Behavior
         Duration
         RepeatBehavior
         AutoReverse
         BeginTime
         Speed Controls
      Interactive Control
   Animation and Transform

      Animating Translation
      Rolling Balls
      Combining Transform Animation
   Path Animation

   Frame-Based Animation

      Key-Frame Animation
      Spline Key-Frame Animation
   Custom Animation

      Custom Animation Class
      Per-Frame Animation
      Animation Using Timer

Chapter 7: Physics and Games in WPF
   Ordinary Differiential Equations

      Fourth-Order Runge-Kutta Method
      Higher-Order ODEs
      ODE Solver
   Pendulum

      Equation of Motion
      Pendulum Simulator
   Couple-Spring System

      Equations of Motion
      Coupled-Spring Simulator
   Projectiles

      Aerodynamic Drag Force
      Projectile Equations of Motion
      Golf Game
   Collission

      Bouncing Ball Physics
      Bouncing Ball Simulator
   Fractals

      Binary Tree
      Snowflake
      Mandelbrot Set
      Julia Set

Chapter 8: Charts in WPF
   Simple Line Charts

      Creating Simple Line Chart
      How It Works?
   Line Charts with Data Collection

      Chart Style
      Data Collection
      Data Series
      Creating Charts
   Gridlines and Labels

      XAML Layout
      ChartStyleGridlines Class
      Testing Project
   Legend

      Legend Class
      Testing Project
   Chart User Control

      Creating Chart Control
         Defining Dependency Propeties
         Chart Style for Chart Control
         Data Collection and Data Series
      Using Chart Control
         Creating Simple Chart
         Creating Multiple Charts

Chapter 9: 3D Transformations
   3D Matrices and Vectors in WPF

      3D Points and Wectors
      Matrix3D Structure
      Matrix3D Operations
      Matrix3D Transforms
      Rotation and Quaternion
   Projections

      Orthographic Projections
         Multi-View Projections
         Axonometric Projections
      Perspective Projections
         One-Point Perspective Projections
         Two-Point Perspective Projections
         Three-Point Perspective Projections
         Perspective Projection Matrix
   Views and Projections in WPF

      View Transform
      Perspective Projecion
         View Frustum
         Perspective Transform Matrix
         Implementing Perspective Transforms
         Testing Perspectice Projections
      Orthographic Projecion
         Orthographic Transform Matrix
         Implementing Orthographic Transforms
         Testing Orthograohic projections
   Object Transformsin WPF

      ScaleTransform3D class
      TranslateTransform3D class
      Rotate Transform3D class
      MatrixTransform3D class
      Combining Transforms

Chapter 10: WPF Graphics Basics in 3D
   3D Graphics Basics

      Viewpoint3D
      3D Objects in WPF
      Geometry and Mesh
      GeometryModel3D and Surfaces
      Illuminating the Scene
      3Camera Positions
      Simple Triangle in 3D
   Basic 3D Shapes

      Coordinate Axes and Wireframe
      Creating Cube
      Creating Sphere
      Creating Cylinder
      Creating Cone
      Creating Torus

Chapter 11: Custom 3D Geometries
   Cube Geometry

      CubeGeometry Class
      Testing CubeGeometry
   Ellipsoid Geometry

      EllipsoidGeometry Class
      Testing EllipsoidGeometry
   Cylindrical Geometry

      CylinderGeometry Class
      Testing CylinderGeometry
   Cone Geometry

      ConeGeometry Class
      Testing ConeGeometry
   Torus Geometry

      TorusGeometry Class
      Testing TorusGeometry
   Icosahedron Geometry

      IcosahedronGeometry Class
      Testing IcosahedronGeometry
   Dodecahedron Geometry

      DodecahedronGeometry Class
      Testing DodecahedronGeometry
   Soccer Ball Geometry

      SoccerGeometry Class
      Testing SoccerGeometry

Chapter 12: Custom 3D Shapes
   Deriving from UIElement3D

   Cube Shape

      Cube Shape Class
      Testing Cube Shape
   Ellipsoid Shape

      Ellipsoid Shape Class
      Testing Ellipsoid Shape
   Cylinder Shape

      Cylinder Shape Class
      Testing Cylinder Shape
   Cone Shape

      Cone Shape Class
      Testing Cone Shape
   Torus Shape

      Torus Shape Class
      Testing Torus Shape
   Icosahedron Shape

      Icosahedron Shape Class
      Testing Icosahedron Shape
   Dodecahedron Shape

      Dodecahedron Shape Class
      Testing Dodecahedron Shape
   Soccer Shape

      Soccer Shape Class
      Testing Soccer Shape
   Combining Shape

      Combining Shape Class
      Testing Combining Shape

Chapter 13: 3D Surfaces
   Simple Surfaces

      Rectangular Meshes
      SimpleSurface Class
      Creating Simple Surfaces
   Parametric Surfaces

      ParametricSurface Class
      Creating Parametric Surfaces
         Helicoid Surface
         Sphere Surface
         Torus Surface
         Quadric Surface
   Extruded Surfaces

      ExtrudedSurface Class
      Creating Extruded Surfaces
   Surfaces of Revolution

      RotatedSurface Class
      Creating Surfaces of Revolution
   Surface Shading

      SurfaceShading Class
      Creating Shaded Surfaces

Chapter 14: 3D Model Manipulation
   Lighting and Shading

      Light Sources
      Testing Light Sources
      Shading
   Materials

      Diffuse Materials
      Specular and Emissive Materials
   Texture Mapping

      Using LinearGradientBrush
      Using RadialGradientBrush
      Uisng Image and Tile Brushes
   2D Elements on 3D Surfaces

      Viewport2DVisual3D Class
      Using Viewport2DVisual3D
   Interacting with 3D Models

      Hit-Testing for 3D Geometries
      Hit-Testing for 3D Shapes
      Rotating 3D Models with Mouse

Index