public MainForm() { InitializeComponent(); creator = new FractalCreator(fractalData, genSettings, colorSettings); genSettings.Resolution = pbFractalImage.Size; // --------------- FractalMap ------------------------- fractalMap = new FractalCreator(fractalMapData, genSetMap, mapColorSettings); genSetMap.Resolution = pbMapFractal.Size; pbMapFractal.Image = fractalMap.Create(); // ---------------------------------------------------- tbIterCount.Value = genSettings.IterationCount; tbR.Value = colorSettings.R; tbG.Value = colorSettings.G; tbB.Value = colorSettings.B; cbCalcAlg.SelectedIndex = 0; cbColorAlg.SelectedIndex = 0; cbQualFac.SelectedIndex = 0; cbFractalType.SelectedIndex = 0; cbResolutionForSave.SelectedIndex = 0; lblIterCount.Text = $"Число итераций = {genSettings.IterationCount}"; lblPosXCenter.Text = $"Центр X: {fractalData.CenterX}"; lblPosYCenter.Text = $"Центр Y: {fractalData.CenterY}"; lblSizeArea.Text = $"Увеличение: {fractalData.SizeArea}"; lblStatus.Text = "Готово"; }
private async void btnOpenFractalData_ClickAsync(object sender, EventArgs e) { var od = new OpenFileDialog() { FileName = "fractalData.fd", Filter = "FractalData files(*.fd) | *.fd", RestoreDirectory = true }; if (od.ShowDialog() != DialogResult.OK) { return; } try { BinaryFormatter formatter = new BinaryFormatter(); fractalData = null; pbFractalImage.Image = null; using (FileStream fs = new FileStream(od.FileName, FileMode.Open)) { fractalData = (FractalData)formatter.Deserialize(fs); } } catch { MessageBox.Show($"Произошла ошибка открытия файла. Возможно, файл имеет неверный формат.", "Fractal #", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } creator = new FractalCreator(fractalData, genSettings, colorSettings); lblPosXCenter.Text = $"Центр X: {fractalData.CenterX}"; lblPosYCenter.Text = $"Центр Y: {fractalData.CenterY}"; lblSizeArea.Text = $"Увеличение: {fractalData.SizeArea}"; switch (fractalData.FractalType) { case FractalEnumType.Mandelbrot: { cbFractalType.SelectedIndex = 0; break; } case FractalEnumType.Julia: { cbFractalType.SelectedIndex = 1; break; } case FractalEnumType.Lambda: { cbFractalType.SelectedIndex = 2; break; } default: { throw new NotImplementedException(); } } ProgramStatusBusy(); pbFractalImage.Image = await creator.CreateAsync(); ProgramStatusDone(); MessageBox.Show($"Файл успешно открыт.", "Fractal #"); }