/// <summary> /// Конструктор для главной формы /// </summary> public MainForm() { InitializeComponent(); graph1 = new Eurelian.Graph(); graph2 = new Eurelian.Graph(); //создание полотна для графа 1 graph1.G = new Eurelian.DrawGraph(pictureBox1.Width, pictureBox1.Height, graph1); pictureBox1.Image = graph1.G.GetBitmap(); //создание полотна для графа 2 graph2.G = new Eurelian.DrawGraph(pictureBox2.Width, pictureBox2.Height, graph2); pictureBox2.Image = graph2.G.GetBitmap(); }
/// <summary> /// Метод для выводы инфорации о графе /// </summary> /// <param name="graph">граф</param> /// <param name="name">его имя</param> private void Info(EulerianGraph.Eurelian.Graph graph, string name) { InformationForm form = new InformationForm(); form.Show(); form.Text += name; if (graph.Name == null) { form.NameTextBox.Text = "Данные введены вручную или не введены"; } else { form.NameTextBox.Text = graph.Name; } form.NumDTextBox.Text = Convert.ToString(graph1.NumberOfDots); form.NumLTextBox.Text = Convert.ToString(graph1.NumberOfLine); form.EureTextBox.Text = Convert.ToString(graph1.IsEulerian); if (graph.IsEulerian) { form.WayLabel.Visible = true; form.WayTextBox.Visible = true; string str = ""; foreach (var item in graph.Way) { str += Convert.ToString(item) + " "; } form.WayTextBox.Text = str; } else { form.WayLabel.Visible = false; form.WayTextBox.Visible = false; form.WayTextBox.Text = ""; } }
/// <summary> /// Метод для загрузки информации в граф /// </summary> /// <param name="graph">граф</param> /// <param name="picture">место, на котором происходит визуализация</param> /// <param name="name">имя графа</param> private void Input(EulerianGraph.Eurelian.Graph graph, PictureBox picture, string name) { picture.Hide(); graph.ClearAllData(); //Если нажата радиокнопка "ввести из файла" if (FromFile_radioButton.Checked) { //Если загрузка из файла прошла успешно и файл оказался FO массивом, выполнять все последующие операции if (graph.ReadFromFile()) { //Проверка графа на эйлеровость graph.EulerianOrNot(); //Отображение picterbox picture.Show(); //Очистка полотна graph.G.clearSheet(); //Визуализиация графа graph.Visualize(); //Если граф эйлеров, отображение пути if (graph.IsEulerian) { //Очистка полотна graph.G.clearSheet(); //Рисование пути graph.DrawWay(); } } } //Если нажата радиокнопка "ввести вручную" else { //Создать форму для ввода с клавиатуры KeyboardInputForm form = new KeyboardInputForm(graph); form.groupBox1.Text += name; //Вывести форму для ввода с клавиатуры в модальном режиме form.ShowDialog(); try { //Конвертация ФО в матрицу смежности graph.ConvertFOtoMatrix(); //Проверка графа на эйлеровость graph.EulerianOrNot(); //Отображение picterbox picture.Show(); //Очистка полотна graph.G.clearSheet(); //Визуализиация графа graph.Visualize(); //Если граф эйлеров, отображение пути if (graph.IsEulerian) { //Очистка полотна graph.G.clearSheet(); //Рисование пути graph.DrawWay(); } } catch (Exception) { MessageBox.Show("Данные не введены или введены неверно", "Ошибка"); } } }