public void BeeHiveVersNotBeeHive() { string BeeHiveAdress = @"C:\Users\крендель\Desktop\Code\Defect2019\bin\Debug\EllipseData"; string NotBeeHiveAdress = @"C:\Users\крендель\Desktop\Code\Defect2019\bin\Release\EllipseData"; string Symbols = "ABCDEFGH"; string[] files = new string[Symbols.Length * (Symbols.Length - 1)]; int k = 0; for (int i = 0; i < Symbols.Length; i++) { for (int j = 0; j < Symbols.Length; j++) { if (i != j) { files[k++] = $"{Symbols[i]}to{Symbols[j]}(MaxCoordinate).txt"; } } } double[] Get(string path) => files.Select(s => Expendator.GetStringArrayFromFile(Path.Combine(path, s))[2].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2].ToDouble()).ToArray(); var vec1 = Get(BeeHiveAdress); var vec2 = Get(NotBeeHiveAdress); using (StreamWriter r = new StreamWriter("bee.txt")) for (int i = 0; i < vec1.Length; i++) { r.WriteLine($"{vec1[i]} {vec2[i]}"); } Expendator.StartProcessOnly("TestBee.r"); Process.Start("bee.png"); }
public async void анимацияПоПоследнимСохранённымДаннымToolStripMenuItem_Click(object sender, EventArgs e) { if (!File.Exists("3D ur, uz(info).txt")) { MessageBox.Show("Не найдено файла со списком изображений", $"Нет списка \"3D ur, uz(info).txt\"", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string[] st = Expendator.GetStringArrayFromFile("3D ur, uz(info).txt", true); for (int i = 0; i < st.Length; i++) { if (!File.Exists(st[i])) { FlexibleMessageBox.Show($"Не найдено файла \"{st[i]}\" из списка изображений. Анимация не готова", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); if (FilesUrUzExist(st) && MessageBox.Show($"Поскольку все нужные текстовые файлы в наличии, изображения можно восстановить. Создать анимацию? (может занять около 15 минут)", "Перерисовка", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { await Task.Run(() => Expendator.StartProcessOnly("ReDraw3Duxt2.r", true)); break; } else { return; } } } new Anima(st).Show(); }
private async void загрузитьНеобходимыеПакетыRToolStripMenuItem_Click(object sender, EventArgs e) { const string mess = "Требуется подключение к Интернету. Будут загружены все пакеты R, необходимые программе. Загрузка может занимать несколько минут, по окончанию загрузки консоль закроется. Уже установленные пакеты могут загрузиться заново либо обновиться. Выполнить действие?"; if (MessageBox.Show(mess, "Требуется подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { SoundMethods.OK(); await Task.Run(() => Expendator.StartProcessOnly(OtherMethods.GetResource("InstallPackages.r"), true)); } }
/// <summary> /// Только создать 3D графики с сохранением в файлы /// </summary> /// <param name="shortname"></param> /// <param name="F"></param> /// <param name="xmin"></param> /// <param name="xmax"></param> /// <param name="ymin"></param> /// <param name="ymax"></param> /// <param name="count"></param> /// <param name="progress"></param> /// <param name="token"></param> /// <param name="graficType"></param> /// <param name="title"></param> /// <param name="xlab"></param> /// <param name="ylab"></param> /// <param name="zlab"></param> /// <param name="parallel"></param> public static async Task JustGetGraficInFilesAsync(string shortname, string savename, Func <double, double, double> F, NetOnDouble x, NetOnDouble y, IProgress <int> progress, System.Threading.CancellationToken token, StringsForGrafic forGrafic, GraficType graficType = GraficType.PdfPngHtml, bool parallel = true) { await GetDataToFileAsync(shortname, savename, F, x.Array, y.Array, progress, token, forGrafic, parallel); GraficTypeToFile(graficType); RemoveOlds(shortname); if (x.Count == y.Count) { await Task.Run(() => Expendator.StartProcessOnly("Magic3Dscript.R")); } }
static void Main(string[] args) { string BeeHiveAdress = @"C:\Users\user1\source\repos\CodeIt\Defect2019\bin\Release\EllipseData"; string NotBeeHiveAdress = @"C:\Users\user1\Desktop\EllipseData"; string Symbols = "ABCDEFGH"; string[] files = new string[Symbols.Length * (Symbols.Length - 1)]; int k = 0; for (int i = 0; i < Symbols.Length; i++) { for (int j = 0; j < Symbols.Length; j++) { if (i != j) { files[k++] = $"{Symbols[i]}to{Symbols[j]}(MaxCoordinate).txt"; } } } double[] Get(string path) => files.Select(s => Expendator.GetStringArrayFromFile(Path.Combine(path, s))[2].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2].Replace('.', ',').ToDouble()).ToArray(); var vec1 = Get(BeeHiveAdress); var vec2 = Get(NotBeeHiveAdress); double s1 = 0, s2 = 0; using (StreamWriter r = new StreamWriter("bee.txt")) for (int i = 0; i < vec1.Length; i++) { r.WriteLine($"{vec1[i]} {vec2[i]}"); Console.WriteLine($"{vec1[i]} \t{vec2[i]} " + ((vec1[i] >= vec2[i]) ? "\tЛучше +" : "\tХучше -")); double tmp = vec1[i] - vec2[i]; if (tmp < 0) { s2 -= tmp; } else { s1 += tmp; } } Console.WriteLine($"Выигрыш = \t{s1} ({Expendator.GetProcent(s1, s1 + s2)}%)"); Console.WriteLine($"Проигрыш = \t{s2} ({Expendator.GetProcent(s2, s1 + s2)}%)"); File.Copy(Expendator.GetResource("TestBee.r", "OptimisationTest"), "TestBee.r", true); Expendator.StartProcessOnly("TestBee.r"); Process.Start("bee.png"); Console.ReadKey(); }
private async Task MakeInteractive() { if (checkBox4.Checked || checkBox5.Checked) { toolStripStatusLabel1.Text = $"Создаются графики"; new System.Media.SoundPlayer(Properties.Resources.СоздаютсяГрафики).Play(); await Task.Run(() => { Parallel.ForEach(fdiff, path => Expendator.StartProcessOnly("GraficFunc.r", true, path)); }); new System.Media.SoundPlayer(Properties.Resources.ГрафикиДоступны).Play(); } }
private async Task AnimateAsync(string gl, string path) { toolStripStatusLabel1.Text = $"Запущено построение поверхностей"; toolStripStatusLabel2.Text = $""; if (source.IsCancellationRequested) { return; } label9.Text = $"Очистка...{Environment.NewLine}Построение..."; await Task.Run(() => Parallel.Invoke( () => StartProcess("WavesSurface.r", gl, true, path), () => { Functions.cmas.Dispose(); GC.Collect(); }) ); // new Библиотека_графики.PdfOpen("Полученные u-surfaces", Path.Combine(Environment.CurrentDirectory, $"{gl} .pdf")).Show(); if (source.IsCancellationRequested) { return; } checkBox2.Hide(); if (checkBox2.Checked) { toolStripStatusLabel1.Text = $"Построены u-surface. Создаётся массив кадров"; await Task.Run(() => Expendator.StartProcessOnly("ReDraw3Duxt2.r", true, path)); if (source.IsCancellationRequested) { return; } //new Anima(filenames).ShowDialog(); } }
/// <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 = $"Операции закончены"; }