Table of Contents

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


Chapter 1: Overview of WPF Programming
   New Features in WPF

   XAML Basics

      Why 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: 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
   Vectors and Matrices in WPF

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

      MatrixTransform Class
      ScaleTransform Class
      TranslateTransform Class
      RotateTransform Class
      SkewTransform Class
      Composite Transforms

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

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

      Lines
      Rectangles and Ellipses
      Polylines
      Polygons
   Paths and Geometries

      Line, Rectangle, and Ellipse Geometries
      GeometryGroup Class
      CombinedGeometry Class
      PathGeometry Class
         Lines and Polylines
         Arcs
         Bezier Curves
      Geometry and Mini-Language
      Hit Testing
   Custom Shapes

      Star Class
      Arrowline Class
      Testing Custom Shapes

Chapter 4: Colors and Brushes
   Colors

      System Colors
      Color Picker
   Brushes

      SolidColorBrush
      LinearGradientBrush
      RadialGradientBrush
      DrawingBrush
   Custom Colormap and Shading

      Custom Colormap Brushes
      testing Colormap Brushes
      Color Shading
      Testing Color Shading

Chapter 5: 2D Line Charts
   Simple Line Charts

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

      Chart Style
      Data Series
      Data Collection
      Creating Line Charts
   Gridlines and Labels

      Chart Style with Gridlines
      Creating a Chart with Gridlines
   Legends

      Legend Class
      Creating a Chart with Legend
   Symbols

      Defining Symbols
      Creating a Chart with Symbols
   Line Charts with Two Y Axes

      Why We Need Two Y Axes
      Chart Style with Two Y Axes
      DataSeries and DataCollection with Two Y Axes
      Creating a Chart with Two Y Axes

Chapter 6: Specialized 2D Charts
   Bar Charts

      DataSeries for Bar Charts
      DataCollection for Bar Charts
      Creating Simple Bar Charts
      Creating Group Bar Charts
      Creating Overlay Bar Charts.
      Creating Stacked Bar Charts
   Stair-Step Charts

      DataSeries for Stair-Step Charts
      DataCollection for Stair-Step Charts
      Creating Stair-Step Charts
   Stem Charts

      DataCollection for Stem Charts
      Creating Stem Charts
   Error Bar Charts

      DataSeries for Error Bar Charts
      DataCollection for Error Bar Charts
      Creating Error Bar Charts
   Area Charts

      DataSeries for Area Charts
      DataCollection for Area Charts
      Creating Area Charts
   Polar Charts

      Chart Style for Polar Charts
      DataCollection for Polar Charts
      Creating Polar Charts
   Pie Charts

      Pie Chart Style
      Legend for Pie Charts
      Creating Pie Charts

Chapter 7: Stock Charts
   Static Stock Charts

      Text File Reader
      DataSeries and DataCollection for Stock Charts
      Hi-Lo Stock Charts
      Hi-Lo Open-Close Stock Charts
      Candlestick Stock Charts
   Moving Averages

      Simple Moving Averages
         Implementation
         Creating SMA Curves
      Weighted Moving Averages
         Implementation
         Creating WMA Curves
      Exponential Moving Averages
         Implementation
         Creating EMA Curves
   Using Yahoo Stock Charts in WPF

      Connecting to Yahoo Stock Charts
      Creating Yahoo Stock Charts in WPF

Chapter 8: Interactive 2D Charts
   Automatic Tick Placement

      Optimal Tick Spacing
      Creating Charts with Automatic Ticks
   Chart Panning with a Mouse

   Chart Zooming with a Mouse

   Chart Zooming with a Mouse Wheel

   Retrieving Chart Data


Chapter 9: 2D Chart Controls
   Line Chart Control

      Defining Dependency Properties
      Using the Line Chart Control
         Creaing a Simple Line Chart
         Creating Multiple Line Charts
   Specialized 2D Chart Control

      Bar Chart Control
         Implementation
         Creating Bar Charts
         Creating Multiple Bar Charts
      Stair-Step Chart Control
         Implementation
         Creating Stair-Step Charts
      Stem Chart Control
         Implementation
         Creating Stem Charts
      Error Bar Control
         Implementation
         Creating Error Bar Charts
      Area Chart Control
         Implementation
         Creating Area Charts
      Polar Chart Control
         Implementation
         Creating Polar Charts
      Pie Chart Control
         Implementation
         Creating Pie Charts
      Creating Multiple Charts

Chapter 10: Data Interpolations
   Linear Interpolation

      Algorithm
      Implementation
      Testing Linear Interpolation
   Lagrange Interpolation

      Algorithm
      Implementation
      Testing Lagrange Interpolation
   Barycentric Interpolation

      Algorithm
      Implementation
      Testing Barycentric Interpolation
   Newton Divided-Difference Interpolation

      Algorithm
      Implementation
      Testing Newton Divided-Difference Interpolation
   Cubic Spline Interpolation

      Algorithm
      Implementation
      Testing Cubic Spline Interpolation

Chapter 11: Curve Fitting
   Linear Algebraic Equations

      Gauss-Jordan Algorithm
      Implementation
   Least-Squares Fit

   Straight-Line Fit

      Implementation
      Testing Straight-Line Fit
   Linear Regression

      Implementation
      Testing Linear Regression
   Polynomial Fit

      Implementation
      Testing Polynomial Fit
   Weighted Linear Regression

      Implementation
      Exponential-Function Fit

Chapter 12: 3D Transformations
   3D Matrices in WPF

      3D Points and Vectors
      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 Perspective Projections
      Orthographic Projecion
         Orthographic Transform Matrix
         Implementing Orthographic Transforms
         Testing Orthographic projections
   Object Transforms in WPF

      ScaleTransform3D class
      TranslateTransform3D class
      Rotate Transform3D class
      MatrixTransform3D class
      Combining Transforms

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

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

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

Chapter 14: 3D Charts with the WPF 3D Engine
   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 15: 3D Charts without the WPF 3D Engine
   3D Coordinate System

      Azimuth and Elevation View
      Creating a Cube
   Chart Style in 3D

      3D Coordinate Axes
      Gridlines
      Labels
      Testing the Project
   3D Line Charts

      Implementation
      Testing the Project
   3D Surface Charts

      Implementation
         DataSeries Class
         Chart Functions
         DrawSurfaceChart Class
      Mesh Charts
      Curtain Charts
      Waterfall Charts
      Surface Charts

Chapter 16: Specialized 3D Charts
   Implementation

      2D Chart Style
      Draw3DChart Class
   Color Charts on the X-Y Plane

      Implementation
      Testing X-Y Color Charts
   Contour Charts

      Algorithm
      Implementation
      Testing Contour Charts
   Combination Charts

      X-Y Charts in 3D
      Contour Charts in 3D
      Filled Contour Charts
      Mesh Contour Charts
      Surface Contour Charts
      Surface-Filled Contour Charts
   3D Bar Charts

      Implementation
      Testing 3D Bar Charts

Index