private void UpdateDiagramData() { var defenceDiagramSettingsVm = new DefenceDiagramSettingsVm(variableParametersValue); if (defenceDiagramSettingsVm.HzCrossHkDown == 0 && defenceDiagramSettingsVm.HzCrossHkUp == 0) { dataGridViewDefenceDiagramDown.RowCount = defenceDiagramSettingsVm.vVeight.Count(); dataGridViewDefenceDiagramUp.RowCount = defenceDiagramSettingsVm.vVeight.Count(); for (int i = 0; i < defenceDiagramSettingsVm.vVeight.Count(); i++) { dataGridViewDefenceDiagramDown[0, i].Value = i; dataGridViewDefenceDiagramDown[1, i].Value = Math.Round(defenceDiagramSettingsVm.vVeight[i], 3); dataGridViewDefenceDiagramDown[2, i].Value = Math.Round(defenceDiagramSettingsVm.hzVeightDown[i], 3); dataGridViewDefenceDiagramDown[3, i].Value = Math.Round(defenceDiagramSettingsVm.vPeople[i], 3); dataGridViewDefenceDiagramDown[4, i].Value = Math.Round(defenceDiagramSettingsVm.hzPeopleDown[i], 3); dataGridViewDefenceDiagramDown[5, i].Value = Math.Round(defenceDiagramSettingsVm.vEquipment[i], 3); dataGridViewDefenceDiagramDown[6, i].Value = Math.Round(defenceDiagramSettingsVm.hzEquipmentDown[i], 3); dataGridViewDefenceDiagramDown[7, i].Value = Math.Round(defenceDiagramSettingsVm.vRevision[i], 3); dataGridViewDefenceDiagramDown[8, i].Value = Math.Round(defenceDiagramSettingsVm.hzRevision[i], 3); dataGridViewDefenceDiagramUp[0, i].Value = i; dataGridViewDefenceDiagramUp[1, i].Value = Math.Round(defenceDiagramSettingsVm.vVeight[i], 3); dataGridViewDefenceDiagramUp[2, i].Value = Math.Round(defenceDiagramSettingsVm.hzVeightUp[i], 3); dataGridViewDefenceDiagramUp[3, i].Value = Math.Round(defenceDiagramSettingsVm.vPeople[i], 3); dataGridViewDefenceDiagramUp[4, i].Value = Math.Round(defenceDiagramSettingsVm.hzPeopleUp[i], 3); dataGridViewDefenceDiagramUp[5, i].Value = Math.Round(defenceDiagramSettingsVm.vEquipment[i], 3); dataGridViewDefenceDiagramUp[6, i].Value = Math.Round(defenceDiagramSettingsVm.hzEquipmentUp[i], 3); dataGridViewDefenceDiagramUp[7, i].Value = Math.Round(defenceDiagramSettingsVm.vRevision[i], 3); dataGridViewDefenceDiagramUp[8, i].Value = Math.Round(defenceDiagramSettingsVm.hzRevision[i], 3); } } else if (defenceDiagramSettingsVm.HzCrossHkDown == 1 || defenceDiagramSettingsVm.HzCrossHkUp == 1) { MessageBox.Show("Защитная диаграмма пересекается с критической!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } }
private void MakeSolvedDiagramGraphic() { var selectedIndex = SelectDataToDiagram(); var defenceDiagramSettingsVm = new DefenceDiagramSettingsVm(variableParametersValue); if (defenceDiagramSettingsVm.HzCrossHkDown == 1 || defenceDiagramSettingsVm.HzCrossHkUp == 1) { MessageBox.Show("Защитная диаграмма пересекается с критической!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } else { //Legend _plotDefenceDiagram.Model.PlotType = PlotType.XY; //plotDefenceDiagram.Model.LegendTitle = "Legend"; _plotDefenceDiagram.Model.LegendOrientation = LegendOrientation.Horizontal; _plotDefenceDiagram.Model.LegendPlacement = LegendPlacement.Outside; _plotDefenceDiagram.Model.LegendPosition = LegendPosition.TopRight; _plotDefenceDiagram.Model.LegendBackground = OxyColor.FromAColor(200, OxyColors.White); _plotDefenceDiagram.Model.LegendBorder = OxyColors.Gray; //Axis var xAxis = new LinearAxis(AxisPosition.Bottom, 0) { MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot, Title = "Путь (м)", Minimum = _selectedHz[0], Maximum = -_mineConfig.MainViewConfig.BorderZero.Value }; if (selectedIndex > 3) { xAxis.Minimum = -_mineConfig.MainViewConfig.Border.Value; xAxis.Maximum = _selectedHz[0]; } _plotDefenceDiagram.Model.Axes.Add(xAxis); var yAxis = new LinearAxis(AxisPosition.Left, 0) { MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot, Title = "Скорость (м/с)", Minimum = 0, Maximum = 1.2 * Convert.ToDouble(_selectedV[0], CultureInfo.GetCultureInfo("en-US")) }; _plotDefenceDiagram.Model.Axes.Add(yAxis); // Create Line series var s1 = new LineSeries { StrokeThickness = 1, Color = OxyColors.Red }; for (int i = 0; i < _points; i++) { s1.Points.Add(new DataPoint(_selectedHz[i], _selectedV[i])); } // add Series and Axis to plot model _plotDefenceDiagram.Model.Series.Add(s1); } }
private void WritePointsToFile(string path) { var defenceDiagramSettingsVm = new DefenceDiagramSettingsVm(variableParametersValue); try { FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); string Line; Line = @"Тахограмма ""груз"""; sw.WriteLine(Line); for (int i = 0; i < _points; i++) { Line = Math.Round(defenceDiagramSettingsVm.hzVeightUp[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")) + "[$]" + Math.Round(defenceDiagramSettingsVm.vVeight[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")); sw.WriteLine(Line); } Line = @"Тахограмма ""люди"""; sw.WriteLine(Line); for (int i = 0; i < _points; i++) { Line = Math.Round(defenceDiagramSettingsVm.hzPeopleUp[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")) + "[$]" + Math.Round(defenceDiagramSettingsVm.vPeople[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")); sw.WriteLine(Line); } Line = @"Тахограмма ""оборудование"""; sw.WriteLine(Line); for (int i = 0; i < _points; i++) { Line = Math.Round(defenceDiagramSettingsVm.hzEquipmentUp[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")) + "[$]" + Math.Round(defenceDiagramSettingsVm.vEquipment[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")); sw.WriteLine(Line); } Line = @"Тахограмма ""ревизия"""; sw.WriteLine(Line); for (int i = 0; i < _points; i++) { Line = Math.Round(defenceDiagramSettingsVm.hzRevision[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")) + "[$]" + Math.Round(defenceDiagramSettingsVm.vRevision[i], 3).ToString(CultureInfo.GetCultureInfo("en-US")); sw.WriteLine(Line); } sw.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private int SelectDataToDiagram() { var defenceDiagramSettingsVm = new DefenceDiagramSettingsVm(variableParametersValue); int index = DefenceDiagramComboBox.SelectedIndex; switch (index) { case 0: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vVeight[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzVeightUp[i]; } break; case 1: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vPeople[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzPeopleUp[i]; } break; case 2: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vEquipment[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzEquipmentUp[i]; } break; case 3: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vRevision[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzRevision[i]; } break; case 4: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vVeight[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzVeightDown[i]; } break; case 5: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vPeople[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzPeopleDown[i]; } break; case 6: for (int i = 0; i < _points; i++) { _selectedV[i] = defenceDiagramSettingsVm.vEquipment[i]; _selectedHz[i] = defenceDiagramSettingsVm.hzEquipmentDown[i]; } break; } return(index); }
private void MakeGraphic() { var defenceDiagramSettingsVm = new DefenceDiagramSettingsVm(variableParametersValue); if (defenceDiagramSettingsVm.HzCrossHkDown == 1 || defenceDiagramSettingsVm.HzCrossHkUp == 1) { MessageBox.Show("Защитная диаграмма пересекается с критической!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } else { var plotDefenceDiagram = new OxyPlot.WindowsForms.Plot { Model = new PlotModel(), Dock = DockStyle.Fill }; this.tabControl1.TabPages[3].Controls.Clear(); this.tabControl1.TabPages[3].Controls.Add(plotDefenceDiagram); //Legend plotDefenceDiagram.Model.PlotType = PlotType.XY; //plotDefenceDiagram.Model.LegendTitle = "Legend"; plotDefenceDiagram.Model.LegendOrientation = LegendOrientation.Horizontal; plotDefenceDiagram.Model.LegendPlacement = LegendPlacement.Outside; plotDefenceDiagram.Model.LegendPosition = LegendPosition.TopRight; plotDefenceDiagram.Model.LegendBackground = OxyColor.FromAColor(200, OxyColors.White); plotDefenceDiagram.Model.LegendBorder = OxyColors.Gray; //Axis var xAxis = new LinearAxis(AxisPosition.Bottom, 0) { MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot, Title = "Путь (м)", Minimum = -_mineConfig.MainViewConfig.Border.Value, Maximum = -_mineConfig.MainViewConfig.BorderZero.Value }; plotDefenceDiagram.Model.Axes.Add(xAxis); var yAxis = new LinearAxis(AxisPosition.Left, 0) { MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot, Title = "Скорость (м/с)", Minimum = 0, Maximum = 1.2 * Convert.ToDouble(variableParametersValue[0], CultureInfo.GetCultureInfo("en-US")) }; plotDefenceDiagram.Model.Axes.Add(yAxis); // Create Line series var s1 = new LineSeries { Title = "Груз", StrokeThickness = 1, Color = OxyColors.Blue }; var s2 = new LineSeries { Title = "Люди", StrokeThickness = 1, Color = OxyColors.Green }; var s3 = new LineSeries { Title = "Оборудование", StrokeThickness = 1, Color = OxyColors.Red }; var s4 = new LineSeries { Title = "Ревизия", StrokeThickness = 1, Color = OxyColors.Orange }; for (int i = 0; i < defenceDiagramSettingsVm.DiagramVeight.Count(); i++) { s1.Points.Add(new DataPoint(-defenceDiagramSettingsVm.DiagramVeight[i].X, defenceDiagramSettingsVm.DiagramVeight[i].Y)); s2.Points.Add(new DataPoint(-defenceDiagramSettingsVm.DiagramPeople[i].X, defenceDiagramSettingsVm.DiagramPeople[i].Y)); s3.Points.Add(new DataPoint(-defenceDiagramSettingsVm.DiagramEquipment[i].X, defenceDiagramSettingsVm.DiagramEquipment[i].Y)); } for (int i = 0; i < defenceDiagramSettingsVm.DiagramRevision.Count(); i++) { s4.Points.Add(new DataPoint(-defenceDiagramSettingsVm.DiagramRevision[i].X, defenceDiagramSettingsVm.DiagramRevision[i].Y)); } // add Series and Axis to plot model plotDefenceDiagram.Model.Series.Add(s1); plotDefenceDiagram.Model.Series.Add(s2); plotDefenceDiagram.Model.Series.Add(s3); plotDefenceDiagram.Model.Series.Add(s4); } }