static void Main(string[] args) { string absF = args[0]; string prF = args[1]; string stF = args[2]; var abs = CsvUtil.ImportFromFile(absF); var pr = CsvUtil.ImportFromFile(prF); var st = CsvUtil.ImportFromFile(stF); var mask = args[3].Trim().Split(';').Select( i => { var coords = i.Trim().Split(',').Select(j => int.Parse(j.Trim())).ToArray(); return(new GridIndex(coords[0], coords[1])); }).ToList(); double[,] res = new double[mask.Count, 5]; for (int i = 0; i < mask.Count; i++) { res[i, 0] = abs[mask[i]]; res[i, 1] = pr[mask[i]]; res[i, 2] = pr[mask[i]] - abs[mask[i]]; res[i, 3] = st[mask[i]]; res[i, 4] = st[mask[i]] - abs[mask[i]]; } CsvUtil.ExportToFile(res, args[4]); }
static void Main(string[] args) { if (args.Length < 6) { PrintUsage(); Pause(); return; } string output; double xs, ys, h; int xd, yd; try { output = args[0]; xs = double.Parse(args[1]); ys = double.Parse(args[2]); h = double.Parse(args[3]); xd = int.Parse(args[4]); yd = int.Parse(args[5]); } catch (Exception e) { Console.WriteLine("Exception while parsing arguments: "); Console.WriteLine(e.Message); Console.WriteLine("Stack trace:"); Console.WriteLine(e.StackTrace); Console.Write("Passed arguments: "); foreach (var arg in args) { Console.Write($"{arg} "); } Console.WriteLine(); PrintUsage(); Pause(); return; } Console.WriteLine($"Generating grid {xd} by {yd} starting from ({xs}; {ys}) with cell size {h} ..."); GridData res = GridData.AllocateNew(new GridSize(xd, yd)); for (int xi = 0; xi < xd; xi++) { for (int yi = 0; yi < yd; yi++) { double x = xs + xi * h; double y = ys + yi * h; res[xi, yi] = Function(x, y); } } Console.WriteLine($"Writing result to {output} ..."); CsvUtil.ExportToFile(res, output); Console.WriteLine("Done."); Pause(); }
private void BtnSave_Click(object sender, RoutedEventArgs e) { if (Data != null) { SaveFileDialog saveFileDialog = new SaveFileDialog() { Filter = "Файл CSV (*.csv)|*.csv" }; if (saveFileDialog.ShowDialog(Application.Current.MainWindow).GetValueOrDefault()) { CsvUtil.ExportToFile(Data, saveFileDialog.FileName); } } }
public PrTabViewModel(SimulationOptions simulationOptions) : base("ІПРАЙ") { var logger = Logger.New(typeof(PrTabViewModel)); using (logger.LogPerf("Init")) { m_SimulationOptions = simulationOptions; m_Simulator = new PrSimulator(m_SimulationOptions); m_VisualizationProvider = GridDataVisualizationProvider.Table(); m_Player = new Player(() => { using (logger.LogPerf("Step simulation")) { m_Simulator.SimulateSteps(); } }, () => { using (logger.LogPerf("Auto simulation")) { m_Simulator.SimulateSteps(5); } }, () => { UpdateVisualization.Execute().Subscribe(); }, TimeSpan.FromMilliseconds(10), DispatcherPriority.ContextIdle); UpdateVisualization = ReactiveCommand.Create(() => { using (logger.LogPerf("Visualization")) { Visualization = m_VisualizationProvider.ProvideVisualization(m_Simulator.GetData()); SimulationInfo = m_Simulator.SimulationInfo; } }); var notRunningOrPlaying = m_Player.WhenAny(x => x.RunningOrPlaying, r => !r.Value); var notSingleStepRunning = m_Player.WhenAny(x => x.SingleStepRunning, r => !r.Value); Step = ReactiveCommand.Create(() => { m_Player.StepOnce(); }, notRunningOrPlaying); PlayPause = new ReactivePlayPauseCommand("Програти", "Пауза", notSingleStepRunning); PlayPause.Subscribe(p => { if (p) { m_Player.Start(); } else { m_Player.Stop(); } }); Restart = ReactiveCommand.Create(() => { m_Simulator.Reset(); }, notRunningOrPlaying); Restart.InvokeCommand(UpdateVisualization); VisualTypeSelector = new ReactiveSelectorCommand <string>(x => (string)x, "Table"); VisualTypeSelector.Selected .Subscribe(option => { switch (option) { case "Table": m_VisualizationProvider = GridDataVisualizationProvider.Table(); break; case "2D": m_VisualizationProvider = GridDataVisualizationProvider.Color(); break; case "3D": m_VisualizationProvider = GridDataVisualizationProvider.Model3D(m_SimulationOptions.Size); break; } }); VisualTypeSelector.Selected .ToSignal() .InvokeCommand(UpdateVisualization); OpenSimulationOptions = ReactiveCommand.Create(() => { SimulationOptionsDialog dialog = new SimulationOptionsDialog(m_SimulationOptions); dialog.ShowDialog(); if (!dialog.DialogResult.GetValueOrDefault(false)) { return; } m_SimulationOptions = dialog.SimulationOptions; m_Simulator = new PrSimulator(m_SimulationOptions); m_VisualizationProvider = m_VisualizationProvider.Copy(m_SimulationOptions.Size); }, notRunningOrPlaying); OpenSimulationOptions .InvokeCommand(UpdateVisualization); ExportToCsv = ReactiveCommand.Create(() => { SaveFileDialog saveFileDialog = new SaveFileDialog() { Filter = "Файл CSV (*.csv)|*.csv" }; if (saveFileDialog.ShowDialog(Application.Current.MainWindow).GetValueOrDefault()) { CsvUtil.ExportToFile(m_Simulator.GetData(), saveFileDialog.FileName); } }); Settings.SettingsChange .InvokeCommand(UpdateVisualization); Settings.SettingsChange .Subscribe(_ => { Pallete = Settings.Current.VisualizationOptions.Pallete; }); Pallete = Settings.Current.VisualizationOptions.Pallete; } }