private async Task<PlotModel> CompareSpeedElectron(Double step) { var sp = new PerformanceComputing.SpeedParticle(0, 1100000, Environment.ProcessorCount); var plotModel = new PlotModel { Title = "Общая скорость электронов" }; TextBlock item = (TextBlock)ViewSpeed.SelectedItem; var selectedItem = item?.Text; if (selectedItem != null && selectedItem.Equals("Общая")) { await sp.DecompositionSpeedElectronsAsync(Dimensionless.IsChecked != null && (bool)Dimensionless.IsChecked); var speed = sp.ElectronsDecompositionSpeed; var lineSerie = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 76, 175, 80), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vx" }; var lineSerie2 = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 255, 255, 0), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vy" }; var lineSerie3 = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 72, 118, 255), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vz" }; Int32 k = 0; for (var i = 0; i < speed.Count; i += 11000) { lineSerie.Points.Add(new DataPoint(k++, speed[i].Vx)); lineSerie2.Points.Add(new DataPoint(k++, speed[i].Vy)); lineSerie3.Points.Add(new DataPoint(k++, speed[i].Vz)); } //for (var i = 0; i < speed.Count; i += 11000) //{ // lineSerie2.Points.Add(new DataPoint(k++, speed[i].Vy)); //} //for (var i = 0; i < speed.Count; i += 11000) //{ // lineSerie3.Points.Add(new DataPoint(k++, speed[i].Vz)); //} plotModel.Series.Add(lineSerie); plotModel.Series.Add(lineSerie2); plotModel.Series.Add(lineSerie3); } return plotModel; }
private async Task<PlotModel> CompareSpeedHelium(Double step) { var sp = new PerformanceComputing.SpeedParticle(0, 1100000, Environment.ProcessorCount); var plotModel = new PlotModel { Title = "Общая скорость гелия" }; TextBlock item = (TextBlock)ViewSpeed.SelectedItem; var selectedItem = item?.Text; if (selectedItem != null && selectedItem.Equals("Общая")) { //await sp.SpeedHeliumsAsync(Dimensionless.IsChecked != null && (bool)Dimensionless.IsChecked); await sp.DecompositionSpeedHeliumsAsync(Dimensionless.IsChecked != null && (bool)Dimensionless.IsChecked); var speed = sp.HeliumsDecompositionSpeed; //var speed = new List<double>(sp.HeliumsFullSpeed); //speed.Sort(); //List<Double> _sp = new List<Double>(); //var h = (speed[speed.Count - 1] - speed[0]) / 100; //for (int i = 0; i < 100; i++) //{ // var Ai = speed[0] + ((i + 1) - 1) * h; // var Bi = speed[0] + ((i + 2) - 1) * h; // _sp.Add(speed.FindAll(x => x > Ai && x < Bi).Count / (speed.Count * h)); //} var lineSerie = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 76, 175, 80), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vx" }; var lineSerie2 = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 255, 255, 0), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vy" }; var lineSerie3 = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 72, 118, 255), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vx" }; Int32 k = 0; for (var i = 0; i < speed.Count; i += 11000) { lineSerie.Points.Add(new DataPoint(k++, speed[i].Vx)); //lineSerie2.Points.Add(new DataPoint(k++, speed[i].Vy)); //lineSerie3.Points.Add(new DataPoint(k++, speed[i].Vz)); } for (var i = 0; i < speed.Count; i += 11000) { lineSerie2.Points.Add(new DataPoint(k++, speed[i].Vy)); } for (var i = 0; i < speed.Count; i += 11000) { lineSerie3.Points.Add(new DataPoint(k++, speed[i].Vz)); } //var lineSerie = new LineSeries //{ // StrokeThickness = 2, // MarkerSize = 3, // Title = "Значения скоростей для частиц" //}; //Int32 k = 0; //for (var i = 0; i < speed.Count; i += 11000) //{ // lineSerie.Points.Add(new DataPoint(k++, speed[i])); //} plotModel.Series.Add(lineSerie); plotModel.Series.Add(lineSerie2); plotModel.Series.Add(lineSerie3); } return plotModel; }
private async Task<PlotModel> CompareSpeedCarbon(Double step) { var sp = new PerformanceComputing.SpeedParticle(0, 1100000, Environment.ProcessorCount); var plotModel = new PlotModel { Title = "Общая скорость частиц углерода" }; TextBlock item = (TextBlock)ViewSpeed.SelectedItem; var selectedItem = item?.Text; if (selectedItem != null && selectedItem.Equals("Общая")) { Stopwatch st = new Stopwatch(); st.Start(); await sp.DecompositionSpeedCarbonsAsync(Dimensionless.IsChecked != null && (bool)Dimensionless.IsChecked); st.Stop(); var speed = new List<Particle>(sp.CarbonsDecompositionSpeed); Compare(speed); var savePicker = new Windows.Storage.Pickers.FileSavePicker(); savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary; savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" }); // Default file name if the user does not type one in or select a file to replace savePicker.SuggestedFileName = "Распределение скорости карбона"; Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync(); if (file != null) { //StringBuilder text = new StringBuilder(); //foreach (var particle in speed) //{ // text.AppendLine(particle.Vx.ToString()); // text.AppendLine(particle.Vy.ToString()); // text.AppendLine(particle.Vz.ToString()); //} StringBuilder text = new StringBuilder(); text.AppendLine(st.ElapsedMilliseconds.ToString()); text.AppendLine(speed[0].x.ToString()); text.AppendLine(speed[0].y.ToString()); text.AppendLine(speed[0].z.ToString()); await Windows.Storage.FileIO.WriteTextAsync(file, text.ToString()); Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file); Windows.Storage.CachedFileManager.DeferUpdates(file); // write to file } var lineSerie = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 76, 175, 80), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vx" }; var lineSerie2 = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 255, 255, 0), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vy" }; var lineSerie3 = new LinearBarSeries { FillColor = OxyColor.FromArgb(69, 72, 118, 255), StrokeThickness = 1, StrokeColor = OxyColor.FromArgb(255, 76, 175, 80), Title = "Распределение Vz" }; Int32 k = 0; for (var i = 0; i < speed.Count; i += 100) { lineSerie.Points.Add(new DataPoint(k++, speed[i].Vx)); } for (var i = 0; i < speed.Count; i += 100) { lineSerie2.Points.Add(new DataPoint(k++, speed[i].Vy)); } for (var i = 0; i < speed.Count; i += 100) { lineSerie3.Points.Add(new DataPoint(k++, speed[i].Vz)); } plotModel.Series.Add(lineSerie); plotModel.Series.Add(lineSerie2); plotModel.Series.Add(lineSerie3); } return plotModel; }