⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mandelbrot.cs

📁 A fractal is generally "a rough or fragmented geometric shape that can be split into parts, each of
💻 CS
字号:
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Xml.Serialization;
using System.IO;
using System.Windows.Forms;
using System.Threading;

namespace Fractals
{
	public class Mandelbrot : FractalSet
	{
		public Mandelbrot()
		{
		}

		protected override Color GetColorVal( double RealC, double ImaginaryC )
		{
			double RealZ = 0;
			double ImaginaryZ = 0;
			double RealZ2 = 0;
			double ImaginaryZ2 = 0;
			int ColorIndex = 0;
			while( (ColorIndex < _MaxIter) && (RealZ2 + ImaginaryZ2 < _MaxMagSquared) )
			{
				RealZ2 = RealZ * RealZ;
				ImaginaryZ2 = ImaginaryZ * ImaginaryZ;
				ImaginaryZ = 2 * ImaginaryZ * RealZ + ImaginaryC;
				RealZ = RealZ2 - ImaginaryZ2 + RealC;
				ColorIndex++;
			}
			return( Color.FromArgb(_Color[ColorIndex % _MaxColors]) );
		}

		public void ReadSettings( string pathname )
		{
			MandelbrotSettings settings;
			try
			{
				XmlSerializer serializer = new XmlSerializer( typeof(MandelbrotSettings) );
				TextReader reader = new StreamReader( pathname );
				settings = (MandelbrotSettings)serializer.Deserialize( reader );
				reader.Close();
			}
			catch
			{
				settings = new MandelbrotSettings();
			}

			_MaxIter = settings.Iterations;
			_realCenter = settings.RealCenter;
			_imgCenter = settings.ImgCenter;
			_deltaReal = settings.Scale;
			_deltaImg = _deltaReal;
			_Color = settings.ColorMap;
		}

		public void SaveSettings( string pathname )
		{
			MandelbrotSettings settings = new MandelbrotSettings();
			settings.Iterations = _MaxIter;
			settings.RealCenter = _realCenter;
			settings.ImgCenter = _imgCenter;
			settings.Scale = _deltaReal;
			settings.ColorMap = _Color;

			XmlSerializer serializer = new XmlSerializer( typeof(MandelbrotSettings) );
			TextWriter writer = new StreamWriter( pathname );
			serializer.Serialize( writer, settings );
			writer.Close();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -