Paproć Barnsleya (paprotka Barnsleya, fraktal liść paproci) – fraktal znany ze względu na uderzające podobieństwo do liści paproci występujących w naturze, spopularyzowany przez Michaela F. Barnsleya. Jest to przykład złożonego obiektu, który może być opisany za pomocą zaledwie czterech przekształceń afinicznych (zob. Barnsley (1993), str. 86) jako atraktor następującego systemu funkcji zwężających… (http://pl.wikipedia.org/wiki/Papro%C4%87_Barnsleya).
{
Bitmap bmp = new Bitmap(1, 1);
bmp.SetPixel(0, 0, Color.Green);
g.DrawImageUnscaled(bmp, x, y);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Random rnd = new Random(DateTime.Now.Millisecond);
double x = 0, y = 0;
for (int i = 0; i < 40000; ++i)
{
double r = rnd.NextDouble();
if (r <= 0.01)
{
x = 0;
y = 0.16 * y;
}
else if (r <= 0.08)
{
x = (0.2 * x) - (0.26 * y);
y = (0.23 * x) + (0.22 * y) + 1.6;
}
else if (r <= 0.15)
{
x = (-0.15 * x) + (0.28 * y);
y = (0.26 * x) + (0.24 * y) + 0.44;
}
else
{
x = (0.85 * x) + (0.04 * y);
y = (-0.04 * x) + (0.85 * y) + 1.6;
}
int zoom = 50;
double xZoom = this.Width - (x * zoom + (this.Width / 2));
double yZoom = this.Height - (y * zoom);
this.PutPixel(g, Color.Green, (int)xZoom, (int)yZoom-50);
}
}
