📄 julia.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 + -