Ejemplo n.º 1
0
        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 = "Готово";
        }
Ejemplo n.º 2
0
        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 #");
        }