Среда программирования:
Visual Studio 2013
Статья по теме:
Построить фрактал Квазиклевер, в котором вместо окружностей за единицу берутся ромбы.
После запуска программы, необходимо нажать на появившееся окно для отрисовки фрактала.
Код программы:
using System; using System.Drawing; using System.Windows.Forms; namespace Fractal_QuasiClever { public partial class Form1 : Form { public const int cond = 7; //должен быть равен количеству итераций(необходим для отрисовки фрактала со всех сторон) public Form1() { InitializeComponent(); } private void pictureBox1_Click(object sender, EventArgs e) { Graphics g = pictureBox1.CreateGraphics(); g.Clear(Color.Black);//Зарисовка экрана черным фоном Draw_Fractal(400, 400, 120, 2, 7); //Вызов функции рисования фрактала, со значениями главного ромба } private int Draw_Fractal(int xc, int yc, int rad, int dir, int it) //xc, yc - координаты цетра ромба, rad - радиус ромба, //dir - позиция ромба-родителя(0-внизу, 1-слева, 2-сверху, 3-справа) //it - количество итераций отрисовки ромбов, { Graphics g = pictureBox1.CreateGraphics(); //Массив цветов Color[] clr = new Color[] { Color.Black, Color.Orange, Color.Crimson, Color.Lime, Color.Yellow, Color.Red, Color.Magenta, Color.Blue }; //Объявление цвета закраски ромба SolidBrush Romb = new SolidBrush(clr[it]); //Отрисовка ромба по заданным координатам g.FillPolygon(Romb, new Point[] { new Point(xc, yc+rad), new Point(xc-rad, yc), new Point(xc, yc-rad), new Point(xc+rad, yc) }); if (it == 0) return 0; it--; //Объявление массива с координатами точек - центров ромбов-потомков int[] x = new int[4]; int[] y = new int[4]; //пересчитывания координат центров ромбов-потомков x[0] = xc; y[0] = yc+((3*rad)/2); x[1] = xc-((3*rad)/2); y[1] = yc; x[2] = xc; y[2] = yc-((3*rad)/2); x[3] = xc+((3*rad)/2); y[3] = yc; rad=rad/2; //Отрисовка ромбов-потомков for (int i = 0; i < 4; i++) { // if((dir==2) && (it+1==cond)) { Draw_Fractal(x[i], y[i], rad, i, it); continue; } else // if ((i - dir == 2) || (i - dir == -2)) { continue; } Draw_Fractal(x[i], y[i], rad, i, it); } return 0; } } }
Прикрепленный файл | Размер |
---|---|
Fractal_QuasiClever.zip | 55.04 кб |