четверг, 3 февраля 2011 г.

Строим простой график в C#

Пришло время на практике ознакомиться с библиотекой ZedGraph. Построим график простейшей функции y=x^2
Создаём новый проект приложения Windows Forms. На панель элементов необходимо добавить компонент ZedGraph, для этого на панели элементов создаём новую вкладку ZedGraph, щёлкаем по ней правой кнопкой мыши и выбираем пункт меню  Выбрать элементы...

Нажимаем по кнопке Обзор и указываем путь к файлу библиотеки ZedGraph.dll
На форме программы  размещаем компонент ZedGraph и кнопку Button
Для кнопки пишем обработчик:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;//подключаем ZedGraph

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Dictionary<double, double> coordinats = new Dictionary<double, double>();// coordinats-хранит координаты точек функции
            for (double x = -9; x <= 9; x += 0.1)//x от -9 до 9
            {
                coordinats.Add(x, x * x);//расчитываем координаты
            }
            GraphPane myPane = new GraphPane();
            zedGraphControl1.GraphPane = myPane;
            myPane.XAxis.Title.Text = "Координата X";//подпись оси X
            myPane.YAxis.Title.Text = "Координата Y";//подпись оси Y
            myPane.Title.Text = "График функции y=x^2";//подпись графика
            myPane.Fill = new Fill(Color.White, Color.LightSkyBlue, 45.0f);//фон графика заливаем градиентом
            myPane.Chart.Fill.Type = FillType.None;
            myPane.Legend.Position = LegendPos.Float;
            myPane.Legend.IsHStack = false;
            LineItem myCurve = myPane.AddCurve("y=x^2",coordinats.Keys.ToArray(), coordinats.Values.ToArray(), Color.Blue,SymbolType.None);//строим график, цвет линии синий
            myCurve.Symbol.Fill = new Fill(Color.White);
            zedGraphControl1.AxisChange();
            zedGraphControl1.Refresh();
            zedGraphControl1.Visible = true;
        }
    }
}
В результате получим следующую программу:

0 коммент.:

Отправить комментарий