rendered paste bodyusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Mandelbrot
{
public partial class frm_mandel : Form
{
public frm_mandel()
{
InitializeComponent();
}
private void cmd_zeichnen_Click(object sender, EventArgs e)
{
cmd_zeichnen.Enabled = false;
pb.Minimum = 0;
pb.Maximum = 300;
int i, j, count;
int N = 64;
double RE_MIN = -2.0;
double RE_MAX = 0.5;
double IM_MIN = -1.25;
//double IM_MAX = 1.25;
double width = pic_mandel.Width;
double height = pic_mandel.Height;
Color farbe = new Color();
double delta = (RE_MAX - RE_MIN) / width;
Bitmap b = new Bitmap(this.Width, this.Height);
complex z = new complex();
for (i = 0, z.real = RE_MIN; i < width; i++, z.real += delta)
{
for (j = 0, z.imag = IM_MIN; j < height; j++, z.imag += delta)
{
count = 0;
complex x = new complex();
x.imag = 0;
x.real = 0;
while (x.betragsquadr() <= 2.0 && count < N)
{
x = x * x + z;
count++;
}
if (x.betragsquadr() <= 2)
{
if(rb_1.Checked==true)
farbe = Color.FromArgb(0, 0, 0);
else
farbe = Color.FromArgb(0, 0, 255);
}
else
{
if(rb_1.Checked==true)
farbe = Color.FromArgb(1 + 254 * count / N, 1 + 254 * count / N, 1 + 254 * count / N);
else
farbe = Color.FromArgb(0, 1 + 254 * count / N, 255 -(1 + 254 * count / N));
}
b.SetPixel(i, j, farbe);
}
pb.PerformStep();
}
pic_mandel.BackgroundImage = (Image)b;
cmd_zeichnen.Enabled = true;
pb.Value = 0;
}
}
public class complex
{
public double imag;
public double real;
public static complex operator +(complex rhs, complex lhs)
{
complex result = new complex();
result.imag = rhs.imag + lhs.imag;
result.real = rhs.real + lhs.real;
return result;
}
public static complex operator *(complex rhs, complex lhs)
{
complex result = new complex();
result.real = (rhs.real * lhs.real) - (rhs.imag * lhs.imag);
result.imag = (rhs.real * lhs.imag) + (rhs.imag * lhs.real);
return result;
}
public double betragsquadr()
{
return (this.imag * this.imag + this.real * this.real);
}
}
}