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

Вход на сайт

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

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

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

Выдаёт ошибку glut32.dll не найден! При том, что он лежит в System32! Всё решил) Нужно отправить не в System32, а в System.
Спасибо за статью. Я не Ваш студент. Но мне она помогла написать функцию для Канторова множества на Python для черепашки: import turtle def kanter(x, y, d):     if d > 1:         turtle...
Как реализовать в данном примере границы расчёта?

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

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
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.rar62.24 кб