E-Book, Englisch, 712 Seiten
Xu Practical WPF Charts and Graphics
1. ed
ISBN: 978-1-4302-2482-2
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 712 Seiten
ISBN: 978-1-4302-2482-2
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
Creating 2D and 3D charts is one of the most common uses of computer graphics. Such charts can have wide applications in representing mathematical, physical, and economic functions in your daily life. Whether you are an engineer, a quantitative analyst, a teacher, or a student, you will end up dealing with charting applications to some degree. Windows Presentation Foundation (WPF) is a next-generation graphics platform that enables you to build advanced user interfaces incorporating documents, media, 2D and 3D graphics, and animations. It is an ideal development tool that allows you to not only generate data, but also easily represent data graphically. Practical WPF Charts and Graphics provides all the tools you will need to develop professional chart and graphics applications in WPF and C#. This book will be useful for WPF and C# programmers of all skill levels, providing a complete and comprehensive explanation of WPF's graphics capability and the creation of various charts, and paying special attention to the details of code implementation.
A bio is not currently available for this author.
Autoren/Hrsg.
Weitere Infos & Material
1;Title Page;1
2;Copyright Page;2
3;Contents at a Glance;4
4;Table of Contents;5
5;About the Author;16
6;Acknowledgments;17
7;Introduction;18
7.1;Overview;18
7.2;What This Book Includes;20
7.3;Is This Book for You?;20
7.4;What Do You Need to Use This Book?;21
7.5;How the Book Is Organized;21
7.6;Using Code Examples;23
7.7;Customer Support;23
8;CHAPTER 1 Overview of WPF Programming;24
8.1;New features in WPF;24
8.2;XAML Basics;25
8.2.1;Why Is XAML Needed?;25
8.2.2;Creating XAML Files;25
8.2.3;Code-Behind Files;26
8.3;Your First WPF Program;27
8.3.1;Properties in XAML;28
8.3.2;Event Handlers in Code-Behind Files;28
8.4;Code-Only Example;30
8.5;XAML-Only Example;32
9;CHAPTER 2 2D Transformations;34
9.1;Basics of Matrices and Transformations;34
9.1.1;Vectors and Points;34
9.1.2;Scaling;35
9.1.3;Reflection;36
9.1.4;Rotation;36
9.1.5;Translation;37
9.2;Homogeneous Coordinates;38
9.2.1;Translation in Homogeneous Coordinates;38
9.2.2;Scaling in Homogeneous Coordinates;39
9.2.3;Rotation in Homogeneous Coordinates;40
9.2.4;Combining Transforms;41
9.3;Vectors and Matrices in WPF;42
9.3.1;Vector Structure;42
9.3.2;Matrix Structure;44
9.3.3;Matrix Operations;45
9.3.4;Matrix Transforms;48
9.3.5;Creating Perpendicular Lines;54
9.4;Object Transformations in WPF;59
9.4.1;MatrixTransform Class;61
9.4.2;ScaleTransform Class;65
9.4.3;TranslateTransform Class;68
9.4.4;RotateTransform Class;71
9.4.5;SkewTransform Class;75
9.4.6;Composite Transforms;78
10;CHAPTER 3 WPF Graphics Basics in 2D;81
10.1;2D Coordinate Systems in WPF;81
10.1.1;Default Coordinates;81
10.1.2;Custom Coordinates;84
10.1.3;Custom Coordinates for 2D Charts;89
10.1.3.1;2D Viewport;94
10.1.3.2;Zooming and Panning;95
10.1.3.3;Resizable Canvas;98
10.2;Basic 2D Graphics Shapes in WPF;102
10.2.1;Lines;102
10.2.2;Rectangles and Ellipses;104
10.2.3;Polylines;108
10.2.4;Polygons;110
10.3;Paths and Geometries;113
10.3.1;Line, Rectangle, and Ellipse Geometries;114
10.3.2;GeometryGroup Class;115
10.3.3;CombinedGeometry Class;117
10.3.4;PathGeometry Class;120
10.3.4.1;Lines and Polylines;121
10.3.4.2;Arcs;121
10.3.4.3;Bezier Curves;122
10.3.5;Geometry and Mini-Language;124
10.3.6;Hit Testing;127
10.4;Custom Shapes;130
10.4.1;Star Class;130
10.4.2;ArrowLine Class;134
10.4.3;Testing Custom Shapes;139
11;CHAPTER 4 Colors and Brushes;144
11.1;Colors;144
11.1.1;System Colors;145
11.1.2;Color Picker;148
11.2;Brushes;155
11.2.1;SolidColorBrush;155
11.2.2;LinearGradientBrush;158
11.2.3;RadialGradientBrush;162
11.2.4;DrawingBrush;165
11.3;Custom Colormap and Shading;168
11.3.1;Custom Colormap Brushes;168
11.3.2;Testing Colormap Brushes;174
11.3.3;Color Shading;176
11.3.4;Testing Color Shading;180
12;CHAPTER 5 2D Line charts;183
12.1;Simple Line Charts;183
12.1.1;Creating Simple Line Charts;183
12.1.2;How It Works;186
12.2;Line Charts with Data Collection;186
12.2.1;Chart Style;186
12.2.2;Data Series;188
12.2.3;Data Collection;190
12.2.4;Creating Line Charts;191
12.3;Gridlines and Labels;194
12.3.1;Chart Style with Gridlines;194
12.3.2;Creating a Chart with Gridlines;199
12.4;Legends;203
12.4.1;Legend Class;203
12.4.2;Creating a Chart with a Legend;208
12.5;Symbols;212
12.5.1;Defining Symbols;212
12.5.2;Symbols Class;213
12.5.3;Creating a Chart with Symbols;220
12.6;Line Charts with Two Y Axes;223
12.6.1;Why We Need Two Y Axes;223
12.6.2;Chart Style with Two Y Axes;225
12.6.3;DataSeries and DataCollection with Two Y Axes;231
12.6.4;Creating a Chart with Two Y Axes;233
13;CHAPTER 6 Specialized 2D Charts;237
13.1;Bar Charts;237
13.1.1;DataSeries for Bar Charts;237
13.1.2;DataCollection for Bar Charts;238
13.1.3;Creating Simple Bar Charts;244
13.1.4;Creating Group Bar Charts;249
13.1.5;Creating Overlay Bar Charts;253
13.1.6;Creating Stacked Bar Charts;254
13.2;Stair-Step Charts;256
13.2.1;DataSeries for Stair-Step Charts;256
13.2.2;DataCollection for Stair-Step Charts;257
13.2.3;Creating Stair-Step Charts;258
13.3;Stem Charts;261
13.3.1;DataCollection for Stem Charts;261
13.3.2;Creating Stem Charts;262
13.4;Error Bar Charts;264
13.4.1;DataSeries for Error Bars;264
13.4.2;DataCollection for Error Bars;266
13.4.3;Creating Error Bar Charts;268
13.5;Area Charts;270
13.5.1;DataSeries for Area Charts;270
13.5.2;DataCollection for Area Charts;271
13.5.3;Creating Area Charts;273
13.6;Polar Charts;275
13.6.1;Chart Style for Polar Charts;275
13.6.2;DataCollection for Polar Charts;280
13.6.3;Creating Polar Charts;281
13.7;Pie Charts;285
13.7.1;Pie Chart Style;285
13.7.2;Legend for Pie Charts;288
13.7.3;Creating Pie Charts;289
14;CHAPTER 7 Stock Charts;294
14.1;Static Stock Charts;294
14.1.1;Text File Reader;294
14.1.2;DataSeries and DataCollection for Stock Charts;297
14.1.3;Hi-Lo Stock Charts;300
14.1.4;Hi-Lo Open-Close Stock Charts;304
14.1.5;Candlestick Stock Charts;305
14.2;Moving Averages;306
14.2.1;Simple Moving Averages;306
14.2.1.1;Implementation;307
14.2.1.2;Creating SMA Curves;309
14.2.2;Weighted Moving Averages;312
14.2.2.1;Implementation;312
14.2.2.2;Creating WMA Curves;314
14.2.3;Exponential Moving Averages;315
14.2.3.1;Implementation;316
14.2.3.2;Creating EMA Curves;318
14.3;Using Yahoo Stock Charts in WPF;319
14.3.1;Connecting to Yahoo Stock Charts;319
14.3.2;Creating Yahoo Stock Charts in WPF;321
15;CHAPTER 8 Interactive 2D Charts;323
15.1;Automatic Tick Placement;323
15.1.1;Optimal Tick Spacing;323
15.1.2;Creating Charts with Automatic Ticks;327
15.2;Chart Panning with a Mouse;331
15.3;Chart Zooming with a Mouse;335
15.4;Chart Zooming with a Mouse Wheel;340
15.5;Retrieving Chart Data;344
16;CHAPTER 9 2D Chart Controls;351
16.1;Line Chart Control;351
16.1.1;Defining Dependency Properties;353
16.1.2;Using the Line Chart Control;361
16.1.2.1;Creating a Simple Line Chart;361
16.1.2.2;Creating Multiple Line Charts;364
16.2;Specialized 2D Chart Control;368
16.2.1;Bar Chart Control;368
16.2.1.1;Implementation;368
16.2.1.2;Creating Bar Charts;370
16.2.1.3;Creating Multiple Bar Charts;373
16.2.2;Stair-Step Chart Control;379
16.2.2.1;Implementation;379
16.2.2.2;Creating Stair-Step Charts;382
16.2.3;Stem Chart Control;383
16.2.3.1;Implementation;383
16.2.3.2;Creating Stem Charts;385
16.2.4;Error Bar Control;387
16.2.4.1;Implementation;387
16.2.4.2;Creating Error Bar Charts;389
16.2.5;Area Chart Control;391
16.2.5.1;Implementation;391
16.2.5.2;Creating Area Charts;393
16.2.6;Polar Chart Control;395
16.2.6.1;Implementation;395
16.2.6.2;Creating Polar Charts;397
16.2.7;Pie Chart Control;399
16.2.7.1;Implementation;399
16.2.7.2;Creating Pie Charts;401
16.2.8;Creating Multiple Charts;403
17;CHAPTER 10 Data Interpolations;411
17.1;Linear Interpolation;411
17.1.1;Algorithm;411
17.1.2;Implementation;412
17.1.3;Testing Linear Interpolation;413
17.2;Lagrange Interpolation;416
17.2.1;Algorithm;416
17.2.2;Implementation;416
17.2.3;Testing Lagrange Interpolation;417
17.3;Barycentric Interpolation;419
17.3.1;Algorithm;420
17.3.2;Implementation;420
17.3.3;Testing Barycentric interpolation;421
17.4;Newton Divided-Difference Interpolation;424
17.4.1;Algorithm;424
17.4.2;Implementation;426
17.4.3;Testing Newton Divided-Difference Interpolation;427
17.5;Cubic Spline Interpolation;429
17.5.1;Algorithm;430
17.5.2;Implementation;430
17.5.3;Testing Cubic Spline Interpolation;433
18;CHAPTER 11 Curve Fitting;436
18.1;Linear Algebraic Equations;436
18.1.1;Gauss-Jordan Algorithm;437
18.1.2;Implementation;437
18.2;Least-Squares Fit;439
18.3;Straight-Line Fit;440
18.3.1;Implementation;440
18.3.2;Testing Straight-Line Fit;441
18.4;Linear Regression;444
18.4.1;Implementation;444
18.4.2;Testing Linear Regression;446
18.5;Polynomial Fit;450
18.5.1;Implementation;450
18.5.2;Testing Polynomial Fit;451
18.6;Weighted Linear Regression;454
18.6.1;Implementation;455
18.6.2;Exponential-Function Fit;456
19;CHAPTER 12 3D Transformations;461
19.1;3D Matrices in WPF;461
19.1.1;3D Points and Vectors;461
19.1.2;Matrix3D Structure;464
19.1.3;Matrix3D Operations;465
19.1.4;Matrix3D Transforms;469
19.1.5;Rotation and Quaternion;472
19.2;Projections;475
19.2.1;Orthographic Projections;476
19.2.1.1;Multiview Projections;476
19.2.1.2;Axonometric Projections;477
19.2.1.2.1;Isometric Projections;478
19.2.1.2.2;Dimetric Projections;478
19.2.1.2.3;Trimetric Projections;479
19.2.2;Perspective Projections;479
19.2.2.1;One-Point Perspective Projections;480
19.2.2.2;Two-Point Perspective Projections;481
19.2.2.3;Three-Point Perspective Projections;482
19.2.2.4;Perspective Projection Matrix;482
19.3;Views and Projections in WPF;483
19.3.1;View Transform;484
19.3.2;Perspective Projection;486
19.3.2.1;View Frustum;486
19.3.2.2;Perspective Transform Matrix;487
19.3.2.3;Implementing Perspective Transforms;490
19.3.2.4;Testing Perspective Projections;491
19.3.3;Orthographic Projection;495
19.3.3.1;Orthographic Transform Matrix;496
19.3.3.2;Implementing Orthographic Transforms;498
19.3.3.3;Testing Orthographic Projections;498
19.4;Object Transforms in WPF;500
19.4.1;ScaleTransform3D Class;501
19.4.2;TranslateTransform3D class;505
19.4.3;RotateTransform3D Class;507
19.4.4;MatrixTransform3D Class;509
19.4.5;Combining Transforms;512
20;CHAPTER 13 WPF Graphics Basics in 3D;514
20.1;3D Graphics Basics;514
20.1.1;Viewport3D;515
20.1.2;3D Objects in WPF;515
20.1.3;Geometry and Mesh;516
20.1.4;GeometryModel3D and Surfaces;518
20.1.5;Illuminating the Scene;519
20.1.6;Camera Position;520
20.1.7;Simple Triangle in 3D;521
20.2;Basic 3D Shapes;523
20.2.1;Coordinate Axes and Wireframe;523
20.2.2;Creating a Cube;525
20.2.3;Creating a Sphere;530
20.2.4;Creating a Cylinder;533
20.2.5;Creating a Cone;538
20.2.6;Creating a Torus;541
21;CHAPTER 14 3D Charts with the WPF 3D Engine;545
21.1;Simple Surfaces;545
21.1.1;Rectangular Meshes;545
21.1.2;SimpleSurface Class;547
21.1.3;Creating Simple Surfaces;550
21.2;Parametric Surfaces;555
21.2.1;Extruded Surfaces;565
21.2.2;Creating Extruded Surfaces;568
21.2.3;ParametricSurface Class;555
21.2.4;Creating Parametric Surfaces;559
21.2.4.1;Helicoid Surface;559
21.2.4.2;Sphere Surface;561
21.2.4.3;Torus Surface;562
21.2.4.4;Quadric Surfaces;563
21.3;Surfaces of Revolution;570
21.3.1;RotateSurface Class;571
21.3.2;Creating Surfaces of Revolution;575
21.4;Surface Shading;577
21.4.1;SurfaceShading Class;577
21.4.2;Creating Shaded Surfaces;581
22;CHAPTER 15 3D Charts Without the WPF3D Engine;585
22.1;3D Coordinate System;585
22.1.1;Azimuth and Elevation View;585
22.1.2;Creating a Cube;587
22.2;Chart Style in 3D;592
22.2.1;3D Coordinate Axes;598
22.2.2;Gridlines;603
22.2.3;Labels;606
22.2.4;Testing the Project;613
22.3;3D Line Charts;615
22.3.1;Implementation;615
22.3.2;Testing the Project;618
22.4;3D Surface Charts;620
22.4.1;Implementation;620
22.4.1.1;DataSeries Class;620
22.4.1.2;Chart Functions;622
22.4.1.3;DrawSurfaceChart Class;624
22.4.2;Mesh Charts;628
22.4.3;Curtain Charts;633
22.4.4;Waterfall Charts;637
22.4.5;Surface Charts;640
23;CHAPTER 16 Specialized 3D Charts;646
23.1;Implementation;646
23.1.1;2D Chart Style;646
23.1.2;Draw3DChart Class;651
23.2;Color Charts on the X-Y Plane;654
23.2.1;Implementation;654
23.2.2;Testing X-Y Color Charts;657
23.3;Contour Charts;660
23.3.1;Algorithm;660
23.3.2;Implementation;661
23.3.3;Testing Contour Charts;665
23.4;Combination Charts;667
23.4.1;X-Y Charts in 3D;667
23.4.2;Contour Charts in 3D;668
23.4.3;Filled Contour Charts;672
23.4.4;Mesh Contour Charts;673
23.4.5;Surface Contour Charts;675
23.4.6;Surface-Filled Contour Charts;676
23.5;3D Bar Charts;676
23.5.1;Implementation;677
23.5.2;Testing 3D Bar Charts;683
24;Index;686




