Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Не работает, выводит это: Process terminated with status 4258096 (0 minute(s), 2 second(s)) при этом открывается консоль с тем же числом
А как можно добавить сюда глубину рекурсии, то есть сложность линии?

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
Visual Studio 2012 Express
Статья по теме: 

Программа отображает Бассейны Ньютона, фракталы Ньютона — разновидность алгебраических фракталов.
Для отрисовки фрактала, нажать кнопку "Рисовать" по центру.

Код программы: 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace ArtFractals
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
       struct Complex
        {
            public double x;
            public double y;
 
         };
 
       const int iter = 50;
       const double min = 1e-6;
       const double max = 1e+6;
 
 
       public void Draw(int mx1, int my1, Graphics g, Pen pen)
       {
           int n,mx,my;
           double p;
           Complex z, t, d = new Complex();
 
           mx = mx1/2;
           my = my1/2;
 
           for (int y = -my; y < my; y++)
               for (int x = -mx; x < mx; x++)
               {
                   n = 0;
                   z.x = x * 0.005;
                   z.y = y * 0.005;
                   d = z;
 
                   while ((Math.Pow(z.x, 2) + Math.Pow(z.y, 2) < max) && (Math.Pow(d.x, 2) + Math.Pow(d.y, 2) > min) && (n < iter))
                   {
                       t = z;
                       p = Math.Pow(Math.Pow(t.x, 2) + Math.Pow(t.y, 2), 2);
                       z.x = 2/3 * t.x + (Math.Pow(t.x, 2) - Math.Pow(t.y, 2)) / (3*p);
                       z.y = 2/3 * t.y * (1 - t.x / p);
                       d.x = Math.Abs(t.x - z.x);
                       d.y = Math.Abs(t.y - z.y);
                       n++;
                   }
                   pen.Color = Color.FromArgb(255, (n*9) % 255, 0, (n*9) % 255);
                   g.DrawRectangle(pen, mx + x, my + y, 1, 1);
 
               }
       }
 
        private void Draw_Newton_fractal(object sender, EventArgs e)
        {
            //Создаем перо цвета - Черный(Black)
            //Толщина - 1 пиксель:
            Pen myPen = new Pen(Color.Black, 1);
            //Объявляем объект "g" класса Graphics и предоставляем
            //ему возможность рисования на pictureBox1:
            Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
            //Вызов функции отрисовки фрактала
            //int mx =1026, my = 428;
            int mx = pictureBox1.Width, my = pictureBox1.Height; 
 
           Draw(mx, my, g, myPen);
        }
 
        private void Picturebox(object sender, EventArgs e)
        {
 
        }
 
    }
}

Прикрепленный файлРазмер
Sobolenko_NewtonFract.rar53.49 кб