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

📄 julia.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 Julia : FractalSet
	{
		private double _realC;
		private double _imgC;

		public Julia()
		{
		}

		protected override Color GetColorVal( double RealZ, double ImaZ )
		{
			Color color;

			double ReaZ2 = RealZ * RealZ;
			double ImaZ2 = ImaZ * ImaZ;
			int clr = 0;
			while( clr < _MaxIter && (ReaZ2 + ImaZ2 < _MaxMagSquared) )
			{
				ReaZ2 = RealZ * RealZ;
				ImaZ2 = ImaZ * ImaZ;
				ImaZ = 2 * ImaZ * RealZ + _imgC;
				RealZ = ReaZ2 - ImaZ2 + _realC;
				clr++;
			}

			if( clr >= _MaxIter )
			{
				color = Color.FromArgb(_Color[(int)((ReaZ2 + ImaZ2) * (_MaxColors - 1)) % _MaxColors]);
			}
			else
			{
				color = Color.FromArgb(_Color[0]);
			}

			return( color );
		}

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

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

		public void SaveSettings( string pathname )
		{
			JuliaSettings settings = new JuliaSettings();
			settings.RealC = _realC;
			settings.ImgC = _imgC;
			settings.Iterations = _MaxIter;
			settings.RealCenter = _realCenter;
			settings.ImgCenter = _imgCenter;
			settings.Scale = _deltaReal;
			settings.ColorMap = _Color;

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

		public double RealC
		{
			get { return( _realC ); }
			set { _realC = value; }
		}

		public double ImgC
		{
			get { return( _imgC ); }
			set { _imgC = value; }
		}
	}
}

⌨️ 快捷键说明

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