Example #1
0
        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]);
        }
Example #2
0
        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;
            }
        }