
Среда программирования:
Microsoft Visual C# 2010
Статья по теме:
Задача - построить кривую дракона (фрактал Дракон Хартера-Хейтуэя).
На форме находится кнопка "Нарисовать", по щелчку мыши выполняется постороение кривой K-го порядка, в данном примере 15-го. Однако можно менять порядок кривой, изменяя значение переменной К.
Также форма содержит кнопку "Очистить", выполняющую очищение поля.
Код программы:
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 Dragonborn { public partial class Form1 : Form { public Form1() { InitializeComponent(); } void dragon_func(int x1, int y1, int x2, int y2, int n) { int xn,yn; Graphics g = Graphics.FromHwnd(pictureBox1.Handle); var drawingPen = new Pen(Brushes.Navy, 1); if(n>0) { xn = (x1 + x2) / 2 + (y2 - y1) / 2; yn = (y1 + y2) / 2 - (x2 - x1) / 2 ; dragon_func(x2, y2, xn, yn, n - 1); dragon_func(x1, y1, xn, yn, n - 1); } var point1 = new Point(x1, y1); var point2 = new Point(x2, y2); g.DrawLine(drawingPen, point1, point2); } private void Draw_dragon_curve(object sender, EventArgs e) { int x1,y1,x2,y2, k; x1 = 200; y1 = 200; x2 = 390; y2 = 400; k = 15; dragon_func(x1,y1,x2, y2, k); } private void Clear_curve(object sender, EventArgs e) { Graphics g = Graphics.FromHwnd(pictureBox1.Handle); var bgcolor = new SolidBrush(Color.White); g.FillRectangle(bgcolor, 0, 0, 660, 516); } private void Picturebox(object sender, EventArgs e) { } } }
Прикрепленный файл | Размер |
---|---|
Dragon_curve_Barketova.rar | 62.24 кб |