zoukankan      html  css  js  c++  java
  • zedGraph基本教程篇第一节:InitialSampleDemo.cs介绍 转载

                            第一节:InitialSampleDemo.cs介绍
            为了讲解方便,我先附上源代码和效果图。
    代码如下:
    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两个区域都有。见图中的相应区域标注。


    本文来自CSDN博客,转载请标明出处:http:
    //blog.csdn.net/tjvictor/archive/2006/11/24/1412540.aspx
    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();
    这样整个程序就完成了,简单吧,其实这是个简单的应该,以后会介绍更加复杂的用法和类库。


    本文来自CSDN博客,转载请标明出处:http:
    //blog.csdn.net/tjvictor/archive/2006/11/24/1412540.aspx
  • 相关阅读:
    快速排序
    Java 循环队列
    Java 用链表实现栈和队列
    Java 遍历集合时产生ConcurrentModificationException异常
    Java 使用Scanner时的NoSuchElementException异常
    Mac中安装git后,终端运行git出错,提示安装Xcode
    Java的设计模式之开篇(1)
    粒子群算法(PSO)
    mysql时间与字符串相互转换
    Jsp中使用EL表达式对字符串进行操作
  • 原文地址:https://www.cnblogs.com/beeone/p/2006246.html
Copyright © 2011-2022 走看看