基本教程篇--第一节:InitialSampleDemo.cs介绍

   第一节:InitialSampleDemo.cs介绍
        为了讲解方便,我先附上源代码和效果图。
基本教程篇--第一节:InitialSampleDemo.cs介绍_第1张图片
代码如下:
using  System;
using  System.Drawing;
using  System.Collections;
 
using  ZedGraph;
 
namespace  ZedGraph.Demo
{
      /// <summary>
      ///  Summary description for SimpleDemo.
      /// </summary>
      public  class InitialSampleDemo : DemoBase
      {
 
            public  InitialSampleDemo() : base( "Code Project Initial Sample",
                 "Initial Sample", DemoType.Tutorial )
            {
                 GraphPane myPane = base.GraphPane;
 
                 // Set the title and axis labels
                 myPane.Title = "My Test Graph/n(For CodeProject Sample)";
                 myPane.XAxis.Title = "My X Axis";
                 myPane.YAxis.Title = "My Y Axis";
               
                 // Make up some data arrays based on the Sine function
                 PointPairList list1 = new PointPairList();
                 PointPairList list2 = new PointPairList();
                 for  ( int i=0; i<36; i++ )
                 {
                      double  x = (double) i + 5;
                      double  y1 = 1.5 + Math.Sin( (double) i * 0.2 );
                      double  y2 = 3.0 * ( 1.5 + Math.Sin( (double) i * 0.2 ) );
                      list1.Add( x, y1 );
                      list2.Add( x, y2 );
                 }
 
                 // Generate a red curve with diamond
                 // symbols, and "Porsche" in the legend
                 LineItem myCurve = myPane.AddCurve( "Porsche",
                      list1, Color.Red, SymbolType.Diamond );
 
                 // Generate a blue curve with circle
                 // symbols, and "Piper" in the legend
                 LineItem myCurve2 = myPane.AddCurve( "Piper",
                      list2, Color.Blue, SymbolType.Circle );
 
                 base .ZedGraphControl.AxisChange();
            }
      }
}
 
        我们可以看到,InitialSampleDemo继承自CemoBase类,而DemoBase又继承自ZedGraphDemo这个接口。ZedGraphDemo接口定义了String Description、String Title、ZedGraph. ZedGraphControl ZedGraphControl 和 System.Collection.ICollection Types这四个属性。DemoBase除了实现这四个属性外,还添加了PaneBase Pane和MasterPane MasterPane这两个属性,此外DemoBase还实现了多载构造函数。关于各个类的具体含义和用法,我会在以后的篇幅中陆续介绍。这里只是给大家一个整体的大致结构。
        下面进行对代码的分析,由于这是第一个例子,所有我会讲得比较细,以后的例子就不会了。
        我们可以看到程序首先
public  InitialSampleDemo() : base( "Code Project Initial Sample" , "Initial Sample", DemoType.Tutorial )
初始化基类的构造函数。基类重载了四个构造函数
public  DemoBase( string description, string title, DemoType type )
            {
                 ArrayList types = new ArrayList();
                 types.Add( type );
 
                 Init( description, title, types );
            }
          
            public  DemoBase( string description, string title, DemoType type, DemoType type2 )
            {
                 ArrayList types = new ArrayList();
                 types.Add( type );
                 types.Add( type2 );
 
                 Init( description, title, types );
            }
          
            public  DemoBase( string description, string title, ICollection types )
            {
                 Init( description, title, types );
            }
          
            private  void Init( string description, string title, ICollection types )
            {
                 this .description = description;
                 this .title = title;
                 this .types = types;
 
                 control = new ZedGraphControl();
            }
函数中的变量含义如下:
Description:对此结构的描述。
Title:在树形结构(TreeView)中显示的标题。
Types:要把此类显示在哪个树形结构的区域中。若有多个Types,则把此类分入不同的树形区域中。例如MasterPane Sample在Tutorial Sample和 Special Features两个区域都有。见图中的相应区域标注。
基本教程篇--第一节:InitialSampleDemo.cs介绍_第2张图片
                         myPane.Title = "My Test Graph/n(For CodeProject Sample)";
                 myPane.XAxis.Title = "My X Axis";
                 myPane.YAxis.Title = "My Y Axis";
     分别指定这个Pane的title、XAxis和YAxis的标题。见上图。
 
                 PointPairList list1 = new PointPairList();
                 PointPairList list2 = new PointPairList();
                 for  ( int i=0; i<36; i++ )
                 {
                      double  x = (double) i + 5;
                      double  y1 = 1.5 + Math.Sin( (double) i * 0.2 );
                      double  y2 = 3.0 * ( 1.5 + Math.Sin( (double) i * 0.2 ) );
                      list1.Add( x, y1 );
                      list2.Add( x, y2 );
                 }
        PointPairList类是一个集合类,继承自
                                                         System.Object 
                                                                System.Collections.CollectionBase                                                                         ZedGraph.CollectionPlus
它是PointPair对象的集合,PointPair类是一个包含(X,Y)的坐标类。
其中的for循环在为两个PointPairList复值。
 
LineItem myCurve = myPane.AddCurve( "Porsche", list1, Color.Red, SymbolType.Diamond );
LineItem类是ZedGraph中的线条类.
myPane.AddCurve( "Porsche", list1, Color.Red, SymbolType.Diamond );
的意思是将刚刚赋值的list以”Porsche”这个名字以红色和水晶形状画到Pane中,这个函数的返回值是一个LineItem。你可以通过myCurve这个变量来对它进行进一步的设定。其中SymbolType是个Enum,它枚举了12个可供使用的形状
 
最后一步就是刷新了。 base .ZedGraphControl.AxisChange();
这样整个程序就完成了,简单吧,其实这是个简单的应该,以后会介绍更加复杂的用法和类库。

你可能感兴趣的:(基本教程篇--第一节:InitialSampleDemo.cs介绍)