Среда программирования:
MS Visual Studio 2015
Статья по теме:
Код программы:
using System; using System.Drawing; using System.Windows.Forms; namespace Gosper_curve { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Graphics g; Pen pen = new Pen(Color.Black); void Draw(double x, double y, double l, double u, int t, int q) { // начало построения ломанных if (t > 0) { if (q == 1) { //формулы построения x += l * Math.Cos(u); y -= l * Math.Sin(u); u += Math.PI; } u -= 2 * Math.PI / 19;//соединение линий l /= Math.Sqrt(7); //масштаб //функции рисования Paint(ref x, ref y, l, u, t - 1, 0); Paint(ref x, ref y, l, u + Math.PI / 3, t - 1, 1); Paint(ref x, ref y, l, u + Math.PI, t - 1, 1); Paint(ref x, ref y, l, u + 2 * Math.PI / 3, t - 1, 0); Paint(ref x, ref y, l, u, t - 1, 0); Paint(ref x, ref y, l, u, t - 1, 0); Paint(ref x, ref y, l, u - Math.PI / 3, t - 1, 1); } else g.DrawLine(pen, (float)Math.Round(x), (float)Math.Round(y), (float)Math.Round(x + Math.Cos(u) * l), (float)Math.Round(y - Math.Sin(u) * l)); } void Paint(ref double x, ref double y, double l, double u, int t, int q) { Draw(x, y, l, u, t, q); x += l * Math.Cos(u); y -= l * Math.Sin(u); } private void button1_Click(object sender, EventArgs e) { g = Graphics.FromHwnd(pictureBox1.Handle); Draw(150, 350, 300, 0, 3, 0); } } }
Прикрепленный файл | Размер |
---|---|
Gosper_curve.zip | 53.24 кб |