Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
new_zap_do_3.2.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
975.33 Кб
Скачать
  1. Список использованной литературы

  1. Прохоров, С. А. Математическое описание и моделирование случайных процессов [Текст] / С. А. Прохоров – Самара: изд-во СГАУ, 2001. – 209 с.: ил.

  2. Определение технологии RAD [Электронный ресурс] http://www.informicus.ru/RAD

  3. Подрезова, В. И. Компьютерное моделирование процессов деления потоков волокнистого материала и управления ими [Текст] / В. И. Подрезова – М. Мир, 2008. – 18с.: ил.

  4. Определение декомпозиции [Электронный ресурс] http://citforum.ru/programming/case/ooad_systemology

  5. СТО СГАУ 02068410-004-2007. Общие требования к учебным текстовым документам [Текст]: методические указания.  Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2007.  30 с.

  1. Приложение 1

      1. Типовые законы распределения

Название закона

f(x)

F(x)

Экспоненциальный

Вейбулла

  1. Приложение 2

      1. Обратные функции законов распределения

Название закона распределения

Обратная функция F-1(x)

Экспоненциальный

Вейбулла

  1. ПРИЛОЖЕНИЕ З

    1. Листинг модулей программы

      1. Модуль Form1

Модуль Form1 – содержит основную логику взаимодействия с пользователем, методы чтения и записи в файл, выгрузки графиков.

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;

using System.IO;

namespace Kyrsovoi_erm

{

public partial class Form1 : Form

{

bool func_nun = true;

Double alpha_value;

Double betta_value;

// Double discret;

int col_count = 1;

Veibolla veib = new Veibolla();

Exponent exp = new Exponent();

Sum_process s_p;

Double mat_oj = 0;

Double disp = 0;

Double k_assim = 0;

Double k_excess = 0;

int size=0;

public Form1()

{

InitializeComponent();

}

private void DrawGraph()

{

//////////////////////////////////////////////////////////////////

////////////////////Функция...................................

//////////////////////////////////////////////////////////////////

Calculate_func();

//////////////////////////////////////////////////////////////////

////////////////////Процесс...................................

//////////////////////////////////////////////////////////////////

Calculate_process();

//////////////////////////////////////////////////////////////////

////////////////////Гистограмма...................................

//////////////////////////////////////////////////////////////////

Calculate_gist();

//////////////////////////////////////////////////////////////////

////////////////////Плотность...................................

//////////////////////////////////////////////////////////////////

Calculate_Plotnost();

//////////////////////////////////////////////////////////////////

////////////////////Мат.Ожидание.................................

//////////////////////////////////////////////////////////////////

Mat_oj_val.Text = Calculate_mat_oj().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Дисперсия.................................

//////////////////////////////////////////////////////////////////

disp_val.Text = Calculate_disp().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Коэфицент ассиметрии.................................

//////////////////////////////////////////////////////////////////

k_assim_val.Text = Calculate_k_assim().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Коэфициет эксцесса.................................

//////////////////////////////////////////////////////////////////

k_excess_val.Text = Calculate_k_excess().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Процесс сумм.................................

//////////////////////////////////////////////////////////////////

Calculate_sum_process();

//////////////////////////////////////////////////////////////////

////////////////////Гистограмма сумм.................................

//////////////////////////////////////////////////////////////////

Calculate_sum_gist();

//////////////////////////////////////////////////////////////////

////////////////////Плотность сумм.................................

//////////////////////////////////////////////////////////////////

Calculate_sum_dansity();

}

private void button1_Click(object sender, EventArgs e)

{

DrawGraph();

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

if (listBox1.SelectedIndex == 0)

{

func_nun = true; // экспонента

textBox2.Enabled = false;

}

else

{

func_nun = false; // вейбулла

textBox2.Enabled = true;

}

}

private void tabControl1_Selected(object sender, TabControlEventArgs e)

{

// if (tabControl1.SelectedIndex == 0)

// button1.Enabled = true;

}

public void Calculate_func()

{

// Получим панель для рисования

GraphPane pane = zedGraph_func.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane.CurveList.Clear();

// Создадим список точек

PointPairList list = new PointPairList();

if (func_nun == true) //экспонента

{

if (Double.TryParse(textBox1.Text, out alpha_value))

{

size = (int)numericUpDown1.Value;

list = exp.Calculate_Exponenta_func(alpha_value, size); // Заполняем список точек

}

else

{

if (!Double.TryParse(textBox1.Text, out alpha_value))

{

MessageBox.Show("Проверьте правильность ввода параметра альфа", "Некорректный ввод");

textBox1.Clear();

}

/*if (!Double.TryParse(textBox3.Text, out discret))

{

MessageBox.Show("Проверьте правильность ввода параметра дельта", "Некорректный ввод");

textBox3.Clear();

}*/

}

}

else

if (func_nun == false)//вейбулла

{

size = (int)numericUpDown1.Value;

if ((Double.TryParse(textBox2.Text, out betta_value)) && (Double.TryParse(textBox1.Text, out alpha_value)))

{

// Заполняем список точек

list = veib.Calculate_Veibolla_func(alpha_value, betta_value, size);

}

else

{

if (!Double.TryParse(textBox1.Text, out alpha_value))

{

MessageBox.Show("Проверьте правильность ввода параметров альфа", "Некорректный ввод");

textBox1.Clear();

}

if (!Double.TryParse(textBox2.Text, out betta_value))

{

MessageBox.Show("Проверьте правильность ввода параметров бетта", "Некорректный ввод");

textBox2.Clear();

}

/*if (!Double.TryParse(textBox3.Text, out discret))

{

MessageBox.Show("Проверьте правильность ввода параметра дельта", "Некорректный ввод");

textBox3.Clear();

}*/

}

}

// Создадим кривую с названием "Sinc",

// которая будет рисоваться голубым цветом (Color.Blue),

// Опорные точки выделяться не будут (SymbolType.None)

string func_name = "Exponenta";

if (!func_nun)

func_name = "Veibulla";

LineItem myCurve = pane.AddCurve(func_name, list, Color.Coral, SymbolType.None);

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

// В противном случае на рисунке будет показана только часть графика,

// которая умещается в интервалы по осям, установленные по умолчанию

zedGraph_func.AxisChange();

// Обновляем график

zedGraph_func.Invalidate();

}

private void Calculate_Plotnost()

{

// if (((func_nun) && (!exp.flistIsEmpty())) || ((!func_nun) && (!veib.flistIsEmpty()))) //нажимали ли кнопку

// {

//if (Int32.TryParse(textBox4.Text, out col_count))// получаем количество коридоров

// {

col_count = (int)numericUpDown2.Value;

PointPairList list = new PointPairList();

PointPairList tlist = new PointPairList();

/* if (((func_nun) && (exp.glistIsEmpty())) || ((!func_nun) && (veib.glistIsEmpty())))

{

if (func_nun)

{

list = exp.Calculate_gist(col_count);

}

else

{

list = veib.Calculate_gist(col_count);

}

}

else

{*/

if (func_nun)

{

list = exp.getGlist();

tlist = exp.Calculate_theoretical_density();

}

else

{

list = veib.getGlist();

tlist = veib.Calculate_theoretical_density();

}

//}

// Получим панель для рисования

GraphPane pane = zedGraphDensity.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane.CurveList.Clear();

string func_name = "Exponenta";

if (!func_nun)

func_name = "Veibulla";

LineItem myCurve = pane.AddCurve("Эксперементальная плотность " + func_name, list, Color.Coral, SymbolType.None);

LineItem myCurve2 = pane.AddCurve("Теоретическая плотность " + func_name, tlist, Color.Blue, SymbolType.None);

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

// В противном случае на рисунке будет показана только часть графика,

// которая умещается в интервалы по осям, установленные по умолчанию

zedGraphDensity.AxisChange();

// Обновляем график

zedGraphDensity.Invalidate();

/* }

else

{

MessageBox.Show("Проверьте правильность ввода параметра 'Количество столбцов'", "Некорректный ввод");

textBox4.Clear();

}*/

/* }

else

{

MessageBox.Show("Нажмите кнопку для генерации значений функции распределения", "Некорректный ввод");

}*/

}

public void Calculate_gist()

{

//if (Int32.TryParse(textBox4.Text, out col_count))// получаем количество коридоров

// {

//button1.Enabled = false;

col_count = (int)numericUpDown2.Value;

// Получим панель для рисования

GraphPane gist_pane = zedGraph_gist.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

gist_pane.CurveList.Clear();

string func_name;

PointPairList glist;

if (func_nun)

{

func_name = "Exponenta";

glist = exp.Calculate_gist(col_count);

}

else

{

func_name = "Veibulla";

glist = veib.Calculate_gist(col_count);

}

// MessageBox.Show("Задница", "Некорректный ввод");

BarItem bar = gist_pane.AddBar("Гистограмма" + func_name, glist, Color.Blue);

// !!! Расстояния между кластерами (группами столбиков) гистограммы = 0.0

// У нас в кластере только один столбик.

gist_pane.BarSettings.MinClusterGap = 0.0f;

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

zedGraph_gist.AxisChange();

// Обновляем график

zedGraph_gist.Invalidate();

/*}

else

{

if (!Int32.TryParse(textBox4.Text, out col_count))

{

MessageBox.Show("Проверьте правильность ввода параметра 'Количество столбцов'", "Некорректный ввод");

textBox4.Clear();

}

}*/

}

public void Calculate_process()

{

Double [] process = new Double[size];

Double[] index = new Double[size];

if (func_nun)

{

process = exp.getProcess();

}

else

{

process = veib.getProcess();

}

for (int i = 0; i < size; i++)

{

index[i] = i;

}

// Получим панель для рисования

GraphPane pane = zedGraph_process.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane.CurveList.Clear();

string func_name = "Exponenta";

if (!func_nun)

func_name = "Veibulla";

LineItem myCurve = pane.AddCurve("Процесс " + func_name,index, process, Color.Blue, SymbolType.None);

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

// В противном случае на рисунке будет показана только часть графика,

// которая умещается в интервалы по осям, установленные по умолчанию

zedGraph_process.AxisChange();

// Обновляем график

zedGraph_process.Invalidate();

/* }

else

{

MessageBox.Show("Проверьте правильность ввода параметра 'Количество столбцов'", "Некорректный ввод");

textBox4.Clear();

}*/

}

private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (((func_nun) && (!exp.flistIsEmpty())) || ((!func_nun) && (!veib.flistIsEmpty()))) //нажимали ли кнопку

{

saveFileDialog1.Filter = "Текстовый *.txt|*.txt";

saveFileDialog1.ShowDialog();

}

else

{

MessageBox.Show("Нажмите кнопку для генерации значений функции распределения", "Невозможно сохранить");

}

}

public Double Calculate_mat_oj()

{

mat_oj = 0;

Double [] process= new Double[size];

// PointPairList list = new PointPairList();

if (func_nun) //экспонента

{

process = exp.getProcess();

}

else // вейбулла

{

process = veib.getProcess();

}

mat_oj = process.Sum()/size;

return mat_oj;

}

public Double Calculate_disp()

{

disp = 0;

Double [] process = new Double[size];

if (func_nun) //экспонента

{

process = exp.getProcess();

}

else // вейбулла

{

process = veib.getProcess();

}

for (int i = 0; i < size; i++)

{

disp += Math.Pow(process[i] - mat_oj,2);

}

disp = disp / (size - 1);

return disp;

}

public Double Calculate_k_assim()

{

Double[] process = new Double[size];

Double m3 = 0;

if (func_nun) //экспонента

{

process = exp.getProcess();

}

else // вейбулла

{

process = veib.getProcess();

}

for (int i = 0; i < size; i++)

{

m3 += Math.Pow(process[i] - mat_oj, 3);

}

m3 = m3 / (size-1);

k_assim = m3 / Math.Pow(disp,3/2);

return k_assim;

}

public Double Calculate_k_excess()

{

Double[] process = new Double[size];

Double m4 = 0;

if (func_nun) //экспонента

{

process = exp.getProcess();

}

else // вейбулла

{

process = veib.getProcess();

}

for (int i = 0; i < size; i++)

{

m4 += Math.Pow(process[i] - mat_oj, 4);

}

m4 = m4 / (size-1);

k_excess = (m4 / Math.Pow(disp, 2))-3;

return k_excess;

}

public void Calculate_sum_process()

{

Double tay = (Double) numericUpDown3.Value;

PointPairList list = new PointPairList();

if (func_nun) //экспонента

{

s_p = new Sum_process(exp.getProcess(),tay);

}

else // вейбулла

{

s_p = new Sum_process(veib.getProcess(), tay);

}

list = s_p.Calculate_summ_count();

// Получим панель для рисования

GraphPane pane = zedGraph_sum_process.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane.CurveList.Clear();

string func_name = "Exponenta";

if (!func_nun)

func_name = "Veibulla";

LineItem myCurve = pane.AddCurve("Процесс сумм" + func_name,list ,Color.Blue, SymbolType.None);

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

// В противном случае на рисунке будет показана только часть графика,

// которая умещается в интервалы по осям, установленные по умолчанию

zedGraph_sum_process.AxisChange();

// Обновляем график

zedGraph_sum_process.Invalidate();

}

public void Calculate_sum_gist()

{

PointPairList list = new PointPairList();

int col_count = (int)numericUpDown2.Value;

list = s_p.Calculate_gist(col_count);

// Получим панель для рисования

GraphPane gist_pane = zedGraph_sum_gist.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

gist_pane.CurveList.Clear();

string func_name = "Exponenta";

if (!func_nun)

func_name = "Veibulla";

BarItem bar = gist_pane.AddBar("Гистограмма сумм" + func_name, list, Color.Blue);

// !!! Расстояния между кластерами (группами столбиков) гистограммы = 0.0

// У нас в кластере только один столбик.

gist_pane.BarSettings.MinClusterGap = 0.0f;

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

zedGraph_sum_gist.AxisChange();

// Обновляем график

zedGraph_sum_gist.Invalidate();

}

public void Calculate_sum_dansity()

{

// Получим панель для рисования

GraphPane pane = zedGraph_sum_density.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane.CurveList.Clear();

PointPairList list = new PointPairList();

list = s_p.getGlist();

string func_name = "Exponenta";

if (!func_nun)

func_name = "Veibulla";

LineItem myCurve = pane.AddCurve("Процесс сумм" + func_name, list, Color.Coral, SymbolType.None);

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

// В противном случае на рисунке будет показана только часть графика,

// которая умещается в интервалы по осям, установленные по умолчанию

zedGraph_sum_density.AxisChange();

// Обновляем график

zedGraph_sum_density.Invalidate();

}

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

openFileDialog1.Filter = "Текстовый (*.txt)|*.txt";

openFileDialog1.ShowDialog();

}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)

{

string way;

if (openFileDialog1.FileName != "")

{

//MessageBox.Show("Все ок");

way = openFileDialog1.FileName;

// Double[] s;

//int count;

//count = 0;

Double[] process;

// PointPairList list = new PointPairList();

Double discret;

// String [] str;

bool err = false;

string line ="";

System.IO.StreamReader file =

new System.IO.StreamReader(way);

if ((line = file.ReadLine()) != null)

{

if (!Int32.TryParse(line, out size))

{

err = true;

}

}

if(((line = file.ReadLine()) != null)&&(!err))

{

if (!Double.TryParse(line, out discret))

{

err = true;

}

}

// Read the file and display it line by line.

int i = 0;

process = new Double[size];

while (((line = file.ReadLine()) != null)&&(i<size)&&(!err))

{

if (!Double.TryParse(line, out process[i]))

{

err = true;

}

i++;

}

if (err)

{

MessageBox.Show("Некорректный формат файла");

file.Close();

}

else

{

file.Close();

exp.Analise_process(process);

veib.Analise_process(process);

exp.Calculate_gist((int)numericUpDown2.Value);

veib.Calculate_gist((int)numericUpDown2.Value);

PointPairList list = new PointPairList();

PointPairList tlist = new PointPairList();

double exp_delta = 0;

double veib_delta = 0;

int alpha_mega = 500;

int betta_mega = 500;

Double[,] exp_mega = new Double[alpha_mega-1,2 ];

Double[,] veib_mega = new Double[(alpha_mega-2)*(betta_mega-1),3];

Double [] min_exp = new Double[2];

Double[] min_veib = new Double[3];

list = exp.getGlist(); // экспонента

int h;

for ( h = 1; h < alpha_mega; h++)

{

exp_delta = 0;

exp.Set_alpha(h);

tlist = exp.Calculate_theoretical_density();

for (int j=0; j < list.Count; j++)

{

exp_delta += Math.Abs(list.ElementAt(j).Y - tlist.ElementAt(j).Y);

}

exp_delta = exp_delta / list.Count;

exp_mega[h-1, 0] = h;

exp_mega[h-1, 1] = exp_delta;

if (h == 1)

{

min_exp[0] = exp_mega[0, 0];

min_exp[1] = exp_mega[0,1];

}

if (exp_mega[h - 1, 1] < min_exp[1])

{

min_exp[0] = exp_mega[h-1, 0];

min_exp[1] = exp_mega[h-1, 1];

}

}

list = veib.getGlist(); //вейбулла

int a;

long index =0;

for ( a= 2; a < alpha_mega; a++) //экспонета это вейбулла при а = 1

{

for (int b = 1; b < betta_mega; b++)

{

veib_delta = 0;

veib.Set_alpha_betta(a,b);

tlist = veib.Calculate_theoretical_density();

for (int j = 0; j < list.Count; j++)

{

veib_delta += Math.Abs(list.ElementAt(j).Y - tlist.ElementAt(j).Y);

}

veib_delta = veib_delta / list.Count;

veib_mega[index, 0] = a;

veib_mega[index, 1] = b;

veib_mega[index, 2] = veib_delta;

if ((a == 2)&&(b==1))

{

min_veib[0] = veib_mega[0, 0];

min_veib[1] = veib_mega[0, 1];

min_veib[2] = veib_mega[0, 2];

}

if (veib_mega[index, 2] < min_veib[2])

{

min_veib[0] = veib_mega[index, 0];

min_veib[1] = veib_mega[index, 1];

min_veib[2] = veib_mega[index, 2];

}

index++;

}

}

string func_name = "Exponenta";

if (min_exp[1] < min_veib[2])

{

exp.Set_alpha(min_exp[0]);

// al

MessageBox.Show("Экспонента a="+min_exp[0]);

func_nun = true;

list = exp.Calculate_Exponenta_func_from_file();

}

else

{

veib.Set_alpha_betta(min_veib[0],min_veib[1]);

MessageBox.Show("Вейбулла a="+min_veib[0]+" b="+min_veib[1]);

func_nun = false;

list = veib.Calculate_Veobulla_func_from_file();

func_name = "Veibulla";

}

//////////////////////////////////////////////////////////////////

////////////////////Функция...................................

//////////////////////////////////////////////////////////////////

// Получим панель для рисования

GraphPane pane = zedGraph_func.GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane.CurveList.Clear();

LineItem myCurve = pane.AddCurve("Функция распределения " + func_name, list, Color.Coral, SymbolType.None);

zedGraph_func.AxisChange();

// Обновляем график

zedGraph_func.Invalidate();

//////////////////////////////////////////////////////////////////

////////////////////Процесс...................................

//////////////////////////////////////////////////////////////////

Calculate_process();

//////////////////////////////////////////////////////////////////

////////////////////Гистограмма...................................

//////////////////////////////////////////////////////////////////

Calculate_gist();

//////////////////////////////////////////////////////////////////

////////////////////Плотность...................................

//////////////////////////////////////////////////////////////////

Calculate_Plotnost();

//////////////////////////////////////////////////////////////////

////////////////////Мат.Ожидание.................................

//////////////////////////////////////////////////////////////////

Mat_oj_val.Text = Calculate_mat_oj().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Дисперсия.................................

//////////////////////////////////////////////////////////////////

disp_val.Text = Calculate_disp().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Коэфицент ассиметрии.................................

//////////////////////////////////////////////////////////////////

k_assim_val.Text = Calculate_k_assim().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Коэфициет эксцесса.................................

//////////////////////////////////////////////////////////////////

k_excess_val.Text = Calculate_k_excess().ToString();

//////////////////////////////////////////////////////////////////

////////////////////Процесс сумм.................................

//////////////////////////////////////////////////////////////////

Calculate_sum_process();

//////////////////////////////////////////////////////////////////

////////////////////Гистограмма сумм.................................

//////////////////////////////////////////////////////////////////

Calculate_sum_gist();

//////////////////////////////////////////////////////////////////

////////////////////Плотность сумм.................................

//////////////////////////////////////////////////////////////////

Calculate_sum_dansity();

}

}

}

private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)

{

string way;

if (saveFileDialog1.FileName != "")

{

way = saveFileDialog1.FileName;

String[] s;

int count;

Double[] process = new Double [size];

//PointPairList list = new PointPairList();

Double discret;

if (func_nun)

{

count = size + 2;

discret = (exp.getxmax() - exp.getxmin()) / size;

s = new string[count];

s[0] = size.ToString();

s[1] = discret.ToString();

process = exp.getProcess();

for (int i = 2; i < count; i++)

{

s[i] = process[i-2].ToString();

}

}

else

{

count = size + 2;

discret = (veib.getxmax() - veib.getxmin()) / size;

s = new string[count];

s[0] = size.ToString();

s[1] = discret.ToString();

process = veib.getProcess();

for (int i = 2; i < count; i++)

{

s[i] = process[i-2].ToString();

}

}

for (int n = 0; n < count; n++)

{

File.WriteAllLines(way, s);

}

}

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

string message = "Вы действительно хотите выйти?";

string caption = "Выход";

MessageBoxButtons buttons = MessageBoxButtons.YesNo;

DialogResult result;

// Displays the MessageBox.

result = MessageBox.Show(message, caption, buttons);

if (result == System.Windows.Forms.DialogResult.Yes)

{

// Closes the parent form.

this.Close();

}

//zedGraph_func.MasterPane.GetImage().Save("test.bmp");

}

private void button2_Click(object sender, EventArgs e)

{

if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

{

String way;

if (folderBrowserDialog1.SelectedPath != null)

way = folderBrowserDialog1.SelectedPath;

else

way = folderBrowserDialog1.RootFolder.ToString();

zedGraph_process.MasterPane.GetImage().Save(way+"\\process.bmp");

zedGraph_func.MasterPane.GetImage().Save(way + "\\function.bmp");

zedGraph_gist.MasterPane.GetImage().Save(way + "\\gistogramm.bmp");

zedGraphDensity.MasterPane.GetImage().Save(way + "\\density.bmp");

zedGraph_sum_process.MasterPane.GetImage().Save(way + "\\sum_process.bmp");

zedGraph_sum_gist.MasterPane.GetImage().Save(way + "\\sum_gistogramm.bmp");

zedGraph_sum_density.MasterPane.GetImage().Save(way + "\\sum_density.bmp");

}

//zedGraph_func.MasterPane.GetImage().Save("test.bmp");

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]