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

Вход на сайт

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

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

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

КРУГОВОЙ ФРАКТАЛ -ОШИБОЧНАЯ ПРОГРАММА! ПАПА ЗибЕрт
Можешь обяснить подробно что как работает, и почему массу не задаем
Здравствуйте, Ильгиз. Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими...
Я хотел узнать математика это обязательно в программирование. Пять лет назад просто из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java. Как то не задумывался и начал смотреть форумы и узнал что без математики не...
Все верно, но так же необходимо зайти в: Компоновщик -> Ввод -> Дополнительные зависимости Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это: SDL2.lib SDL2main.lib SDL2test.lib Без этого не заработает. (MVS 2015)

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

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

Фрактал строится при запуске пиложения.

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

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace TSquare
{
    public partial class Form1 : Form
    {
        public Graphics g; //Графика
        public Bitmap map; //Битмап
        public Brush br; //Кисть
        public int iter = 12; //Количество итераций
 
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            map = new Bitmap(pictureBox1.Width, pictureBox1.Height);//Подключаем Битмап
            g = Graphics.FromImage(map); //Подключаем графику
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//Включаем сглаживание
            br = new SolidBrush(Color.Red);
            g.Clear(Color.Black);
 
            //Координата верхнего левого угла квадрата
            PointF A = new PointF(pictureBox1.Width / 2 - pictureBox1.Height / 4, pictureBox1.Height / 4);
 
            //Вызов рекурсивной функции отрисовки фрактала
            drawTSquare(A, pictureBox1.Height / 2 - pictureBox1.Height / 10, iter);
 
            //Переносим картинку из битмапа на picturebox	
            pictureBox1.BackgroundImage = map;
 
        }
 
        //Рекурсивная функция отрисовки фрактала
        public int drawTSquare(PointF A, int size, int iter)
        {
            //точка А - координата левого верхнего угла квадрата
            //size - длина стороны
            //iter - кол-во итераций
 
            //База рекурсии
            //Если итерация одна, просто рисуем заполненный прямоугольник
            if (iter == 1)
            {   
                g.FillRectangle(br, A.X, A.Y, size, size);
                return 0;
            }
 
            int d = size / 4; //Вспомогательная переменная, четверть длины исходного квадрата
            PointF[] M = new PointF[4];  //Координаты левых верхних углов порожденных квадратов
 
            for (int i = 0; i < 4; i++)
            {
                M[i] = new PointF();
            }
 
            //Левый верхний квадрат
            M[0].X = A.X - d; 
            M[0].Y = A.Y - d;
 
            //Левый нижний квадрат
            M[1].X = A.X - d; 
            M[1].Y = A.Y + size - d;
 
            //Правый верхний квадрат
            M[2].X = A.X + size - d; 
            M[2].Y = A.Y - d;
 
            //Правый нижний квадрат
            M[3].X = A.X + size - d; 
            M[3].Y = A.Y + size - d;
 
            //Вызываем рекурсивно для каждого квадрата
            for (int i = 0; i < 4; i++)
            {
                drawTSquare(M[i], size / 2, iter - 1);
            }
 
            //Отрисовываем исходный квадрат
            g.FillRectangle(br, A.X, A.Y, size, size);
 
            return 0;
        }
    }
}

Прикрепленный файлРазмер
TSquare.zip50.85 кб