private void list_up(FractalColorMode fcm_c) { comboBox1.Items.Add(fcm_c); FractalColorMode fcm = new My2DClassicColorMode(); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new Simple2DFractalColorMode(); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new SimpleInverse2DFractalColorMode(); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new SimpleClouds2DFractalColorMode(100); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new CosColorMode(); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new CycleGradientColorMode(1000, 0); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new TrioArgsCosColorMode(); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } fcm = new FunctionFractalColorMode(); if (fcm.IsCompatible(_fap) && !(fcm.GetType().Equals(fcm_c.GetType()))) { comboBox1.Items.Add(fcm); } foreach (object o in comboBox1.Items) { ((FractalColorMode)o).FractalColorModeChanged += (sender, c) => { Visualizate(); }; } }
private void JuliaSearcher_Load(object sender, EventArgs e) { fpb1 = new FractalPictureBox(); fpb1.SizeMode = PictureBoxSizeMode.AutoSize; fpb1.ContextMenuStrip = contextMenuStrip1; if (_m_fcm == null) { _m_fcm = new Simple2DFractalColorMode(); } panel1.Controls.Add(fpb1); fpb1.ToClickMode(); if (_mandelbrot == null) { _mandelbrot = new Mandelbrot(); } _m_fap = _mandelbrot.CreateFractal(panel1.Width, panel1.Height); fpb1.Image = _m_fcm.GetDrawnBitmap(_m_fap); fpb1.MouseMove += (_sender, _e) => { label1.Text = _get_complex_loc(_mandelbrot, _e.X, _e.Y).ToString(); }; fpb2 = new FractalPictureBox(); fpb2.SizeMode = PictureBoxSizeMode.AutoSize; panel2.Controls.Add(fpb2); fpb1.MouseDown += (_sender, _e) => { if (!clickable) { return; } if (_e.Button != MouseButtons.Left) { return; } _using_complex = _get_complex_loc(_mandelbrot, _e.X, _e.Y); label2.Text = _using_complex.ToString(); _julia.SetComplex(_using_complex); fpb2.Image = _j_fcm.GetDrawnBitmap(((_2DFractal)_julia).CreateFractal(panel2.Width, panel2.Height)); }; fpb2.RectangleSelected += (_sender, rec) => { ((_2DFractal)_julia).CreateParallelFractal(panel2.Width, panel2.Height, rec.X, rec.Y, rec.Width, rec.Height, true); }; ((_2DFractal)_julia).ParallelFractalCreatingFinished += (s, fap) => { Action <Bitmap> act = (bmp) => { fpb2.Image = bmp; }; Invoke(act, _j_fcm.GetDrawnBitmap(fap)); }; fpb2.SelectionPen = null; fpb1.RectangleSelected += (_s, rec) => { _mandelbrot.CreateParallelFractal(panel1.Width, panel1.Height, rec.X, rec.Y, rec.Width, rec.Height, true); }; _mandelbrot.ParallelFractalCreatingFinished += (s, fap) => { Action <Bitmap> act = (bmp) => { fpb1.Image = bmp; }; Invoke(act, _m_fcm.GetDrawnBitmap(fap)); }; fpb2.ContextMenuStrip = contextMenuStrip2; fpb1.SelectionPen = null; clickable = true; _fpb1_h_scale = this.Width / (double)panel1.Width; _fpb1_v_scale = this.Height / (double)panel1.Height; _fpb2_h_scale = this.Width / (double)panel2.Width; _fpb2_v_scale = this.Height / (double)panel2.Height; oldheight = panel1.Height; oldwidth = panel1.Width; вРежимВращенияToolStripMenuItem.Visible = вРежимВращенияToolStripMenuItem.Enabled = _mandelbrot is IUsingQuaternion; }