コード例 #1
0
 private void CopyImages(string name) =>
 Expendator.CopyFiles(Environment.CurrentDirectory,
                      Path.GetDirectoryName(Expendator.GetWordFromFile("WhereData.txt")),
                      new string[]
 {
     $"{name} .pdf",
     $"{name} (heatmap).png",
     $"{name} (heatmap_uz).png",
     $"{name} (ur).html",
     $"{name} (uz).html",
     $"{name} (ur).txt",
     $"{name} (uz).txt"
 }.Where(f => File.Exists(f)).ToArray());
コード例 #2
0
        /// <summary>
        /// Суммирование замеров, построение анимации и прочие заключительные действия
        /// </summary>
        /// <returns></returns>
        private async Task AfterLoopsActAsync()
        {
            label9.Show();
            label9.Text = $"Суммирование{Environment.NewLine}по замерам";
            toolStripStatusLabel1.Text = $"Запущено построение u-surfaces";
            toolStripStatusLabel2.Text = $"";
            BegShow();
            string gl = $"{Source.ToString(sourcesArray)}, (xmin, xmax, count, ymin, ymax) = ({xmin}, {xmax}, {count}dot{count2}, {ymin}, {ymax})";

            await Task.Run(() =>
            {
                StreamWriter ts  = new StreamWriter("textnames.txt");
                StreamWriter pds = new StreamWriter("pdfnames.txt");

                Expendator.WriteStringInFile("SurfaceMain.txt", gl);

                double th = (tmax - tmin) / (tcount - 1);
                for (int i = 0; i < tcount; i++)
                {
                    double t = tmin + i *th;
                    if (t == 0)
                    {
                        continue;
                    }
                    string tit = $"{Source.ToString(sourcesArray)}, t = {t.ToString(4)}, (xmin, xmax, count, ymin, ymax) = ({xmin}, {xmax}, {count}dot{count2}, {ymin}, {ymax})";
                    ts.WriteLine(tit + ".txt");
                    pds.WriteLine($"3D ur, uz(title , {tit} ).pdf");
                    filenames[i] = "3D " + tit + " .png";
                }
                FilenamesArrayToFile();
                ts.Close();
                pds.Close();

                OtherMethods.PlaySound("ДанныеСуммируются");
                Parallel.Invoke(
                    () => SSum(),
                    () =>
                {
                    if (Functions.ur.Lenght > 0)
                    {
                        Functions.ur.Dispose();
                        GC.Collect();
                    }
                });

                Expendator.CopyFiles(Expendator.GetWordFromFile("WhereData.txt"), Environment.CurrentDirectory, "3D ur, uz(x).txt", "3D ur, uz(y).txt");
            });

            label9.Hide();

            if (source.IsCancellationRequested)
            {
                return;
            }
            await Task.Run(() => StartProcess("OnlySurface.r", global : true));

            //new Библиотека_графики.PdfOpen("Полученные u-surfaces", Path.Combine(Environment.CurrentDirectory, $"{gl} .pdf")).Show();
            CopyImages(gl);
            ShowImages(gl);

            OtherMethods.PlaySound("ПоверхностиПостроены");

            if (count == count2)
            {
                if (MessageBox.Show("Создавать анимацию? (может занять до 15 минут)", "Анимация", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    toolStripStatusLabel1.Text = $"Построены u-surface. Создаётся массив кадров";
                    await Task.Run(() => Expendator.StartProcessOnly("ReDraw3Duxt2.r", true));

                    if (source.IsCancellationRequested)
                    {
                        return;
                    }
                    OtherMethods.PlaySound("АнимацияГотова");
                    new Anima(filenames).ShowDialog();
                }

                new Scheme(sourcesArray, new Point(xmin, ymin), xmax - xmin, ymax - ymin, gl + " (heatmap).png").Show();
                OtherMethods.PlaySound("ВычисленияЗавершены");
            }

            toolStripStatusLabel1.Text = $"Операции закончены";
        }