Practical WPF Charts And Graphics - External.dandelon

Transcription

Practical WPF Chartsand GraphicsAdvanced Chart and Graphics Programmingwith the Windows Presentation FoundationJack XuApress*

Contents at a GlanceContents at a GlanceContents. About the AuthorT Technical ReviewerAcknowledgments! IntroductionrOverview of WPF Programming2D Transformations.WPF Graphics Basics in 2D.Colors and Brushes2D Line chartsSpecialized 2D ChartsStock ChartsInteractive 2D Chartsr 2D Chart ControlsData InterpolationsCurve Fitting3D TransformationsWPF Graphics Basics in 3D3D Charts with the WPF 3D Enginei 3D Charts Without the WPF 3D Engine Specialized 3D 3.393419445499531571633673

ContentsDContents at a GlanceContentsAbout the AuthorTechnical ReviewerIIIntroduction,AcknowledgmentsChapter 1: Overview of WPF ProgrammingNew features in WPFXAML Basicsivvxvxvixviixix112Why Is XAML Needed?Creating XAML FilesCode-Behind Files223Your First WPF Program4Properties in XAMLEvent Handlers in Code-Behind FilesCode-Only ExampleXAML-Only ExampleChapter 2: 2D TransformationsBasics of Matrices and TransformationsVectors and ous CoordinatesTranslation in Homogeneous CoordinatesScaling in Homogeneous CoordinatesRotation in Homogeneous CoordinatesCombining Transforms5579111111121313141515161718

QCONTENTSVectors and Matrices in WPF19Vector StructureMatrix StructureMatrix OperationsMatrix TransformsCreating Perpendicular Lines1921222531Object Transformations in WPF36MatrixTransform ClassScaleTransform ClassTranslateTransform ClassRotateTransform ClassSkewTransform ClassComposite Transforms384245485255DChapter 3: WPF Graphics Basics in 2D2D Coordinate Systems in WPFDefault CoordinatesCustom CoordinatesCustom Coordinates for 2D Charts2D ViewportZooming and PanningResizable Canvas596267727376Basic 2D Graphics Shapes in WPF80LinesRectangles and EllipsesPolylinesPolygons80828688Paths and Geometries91Line, Rectangle, and Ellipse GeometriesGeometryGroup ClassCombinedGeometry ClassPathGeometry ClassLines and PolylinesArcsBezier CurvesGeometry and Mini-LanguageHit TestingVI5959.".:929395989999100102105Custom Shapes108Star ClassArrowLine Class108112

D CONTENTSTesting Custom Shapes117Chapter 4: Colors and BrushesColors123123System ColorsColor ustom Colormap and Shading147Custom Colormap BrushesTesting Colormap BrushesColor Shading147153155Testing Color Shading159DChapter 5: 2D Line chartsSimple Line Charts163163Creating Simple Line ChartsHow It Works163166Line Charts with Data Collection166Chart StyleData SeriesData CollectionCreating Line Charts166168170171Gridlines and Labels174Chart Style with GridlinesCreating a Chart with Gridlines174179LegendsLegend ClassCreating a Chart with a Legend183.-.Symbols183188192Defining SymbolsSymbols ClassCreating a Chart with Symbols192193200Line Charts with Two VAxes203Why We Need Two KAxesChart Style with Two KAxesDataSeries and DataCollection with Two KAxes203205211Vll

ED CONTENTSCreating a Chart with Two KAxes213DChapter 6: Specialized 2D ChartsBar Charts217217DataSeries for Bar ChartsDataCollection for Bar ChartsCreating Simple Bar ChartsCreating Group Bar ChartsCreating Overlay Bar ChartsCreating Stacked Bar Charts217218224229233234Stair-Step Charts236DataSeries for Stair-Step ChartsDataCollection for Stair-Step ChartsCreating Stair-Step Charts236237238Stem Charts241DataCollection for Stem ChartsCreating Stem Charts241242Error Bar Charts244DataSeries for Error BarsDataCollection for Error BarsCreating Error Bar Charts244246248Area Charts250DataSeries for Area ChartsDataCollection for Area ChartsCreating Area Charts250251253Polar Charts255Chart Style for Polar ChartsDataCollection for Polar ChartsCreating Polar Charts255260261Pie ChartsPie Chart StyleLegendior Pie ChartsCreating Pie ChartsChapter 7: Stock ChartsStatic Stock ChartsText File ReaderDataSeries and DataCollection for Stock ChartsHi-Lo Stock ChartsHi-Lo Open-Close Stock ChartsCandlestick Stock ChartsV1U265„265268269275275275278281285286

13 CONTENTSMoving AveragesSimple Moving AveragesImplementationCreating SMA CurvesWeighted Moving AveragesImplementationCreating WMA CurvesExponential Moving AveragesImplementationCreating EMA CurvesUsing Yahoo Stock Charts in WPFConnecting to Yahoo Stock ChartsCreating Yahoo Stock Charts in WPFChapter 8: Interactive 2D ChartsAutomatic Tick PlacementOptimal Tick SpacingCreating Charts with Automatic TicksChart Panning with a MouseChart Zooming with a MouseChart Zooming with a Mouse WheelRetrieving Chart DataDChapter 9: 2D Chart ControlsLine Chart ControlDefining Dependency PropertiesUsing the Line Chart ControlCreating a Simple Line ChartCreating Multiple Line ChartsSpecialized 2D Chart ControlBar Chart ControlImplementationCreating Bar ChartsCreating Multiple Bar ChartsStair-Step Chart ControlImplementationCreating Stair-Step ChartsStem Chart ControlImplementationCreating Stem 2355361361364365365367IX

CONTENTSError Bar ControlImplementationCreating Error Bar ChartsArea Chart ControlImplementationCreating Area ChartsPolar Chart ControlImplementationCreating Polar ChartsPie Chart ControlImplementationCreating Pie ChartsCreating Multiple Charts;Chapter 10: Data InterpolationsLinear Interpolation393393AlgorithmImplementationTesting Linear Interpolation393394395Lagrange Interpolation398AlgorithmImplementationTesting Lagrange Interpolation398398399Barycentric Interpolation401AlgorithmImplementationTesting Barycentric interpolation402402403Newton Divided-Difference Interpolation406AlgorithmImplementationTesting Newton Divided-Difference InterpolationCubic Spline InterpolationAlgorithmImplementationTesting Cubic Spline 85406408409".411412412415Chapter 11: Curve FittingLinear Algebraic Equations419419Gauss-Jordan AlgorithmImplementation420420Least-Squares Fit422

CONTENTSStraight-Line FitImplementationTesting Straight-Line FitLinear RegressionImplementationTesting Linear RegressionPolynomial FitImplementationTesting Polynomial FitWeighted Linear RegressionImplementationExponential-Function FitDChapter 12: 3D Transformations3D Matrices in WPF3D Points and VectorsMatrix3D StructureMatrix3D OperationsMatrix3D TransformsRotation and QuaternionProjectionsOrthographic ProjectionsMultiview ProjectionsAxonometric ProjectionsPerspective ProjectionsOne-Point Perspective ProjectionsTwo-Point Perspective ProjectionsThree-Point Perspective ProjectionsPerspective Projection MatrixViews and Projections in WPFView Transform„Perspective ProjectionView FrustumPerspective Transform MatrixImplementing Perspective TransformsTesting Perspective ProjectionsOrthographic ProjectionOrthographic Transform MatrixImplementing Orthographic TransformsTesting Orthographic 8470470471474475479480482482XI

mCONTENTSObject Transforms in WPFScaleTransform3D ClassTranslateTransform3D classRotateTransform3D ClassMatrixTransform3D Class485489491493Combining Transforms496DChapter 13: WPF Graphics Basics in 3D3D Graphics BasicsViewport3D3D Objects in WPFGeometry and Mesh6eometryModel3D and SurfacesIlluminating the SceneCamera PositionSimple Triangle in 3DBasic 3D ShapesCoordinate Axes and WireframeCreating a CubeCreating a SphereCreating a CylinderCreating a ConeCreating a TorusDChapter 14: 3D Charts with the WPF 3D EngineSimple SurfacesRectangular MeshesSimpleSurface ClassCreating Simple SurfacesParametric SurfacesParametricSurface ClassCreating Parametric SurfacesHelicoid SurfaceSphere SurfaceTorus SurfaceQuadric SurfacesExtruded SurfacesExtrudeSurface ClassCreating Extruded 1551554Surfaces of Revolution556RotateSurface Class557

DCONTENTSCreating Surfaces of Revolution561Surface Shading563SurfaceShading ClassCreating Shaded Surfaces563567DChapter 15: 3D Charts Without the WPF 3D Engine3D Coordinate SystemAzimuth and Elevation ViewCreating a Cube571571.571573Chart Style in 3D5783D Coordinate AxesGridlinesLabelsTesting the Project5845895925993D Line Charts601ImplementationTesting the Project6016043D Surface Charts606ImplementationDataSeries ClassChart FunctionsDrawSurfaceChart C\assMesh ChartsCurtain ChartsWaterfall ChartsSurface Charts606606608610614619623626DChapter 16: Specialized 3D ChartsImplementation2D Chart StyleDraw3DChart ClassColor Charts on the X-YPlaneImplementationTesting X-Y Color ChartsContour ChartsAlgorithmImplementationTesting Contour n Charts654X-KChartsin3D654Xlll

0 CONTENTSContour Charts in 3DFilled Contour ChartsMesh Contour ChartsSurface Contour ChartsSurface-Filled Contour Charts3D Bar ChartsImplementationTesting 3D Bar ChartsIndexXIV655659660662663663664670673

3D Charts with the WPF 3D Engine 531 i 3D Charts Without the WPF 3D Engine 571 Specialized 3D Charts 633 Index 673 IV. Contents DContents at a Glance iv Contents v About the Author , xv Technical Reviewer xvi II Acknowledgments xvii Introduction xix Chapter 1: Overview of WPF Programming 1