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

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

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

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

У меня проблема вот с этим: gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);. Вылезает ошибка: CS1061 "object" не содержит определения "GL_COLOR_BUFFER_BIT", и не удалось найти доступный метод расширения "GL_COLOR_BUFFER_BIT",...
Большое спасибо. Единственный код который прошел без каких либо ошибок. Ура!!!
Скажите пожалуйста, подскажите алгоритм по которому по заданным точкам можно определить тип многогранника, скажем это куб или прямоугольный параллелепипед. Нашел теорию по этим фигурам: https://www.mat... https://www.mat... Акцентировать внимание...
Всем у кого не работает. файл wizard.script Ещё одно упоминание Glut32 в строке "if (!VerifyLibFile(dir_nomacro_lib, _T("glut32"), _T("GLUT's"))) return false;" меняем на "if (!VerifyLibFile(dir_nomacro_lib, _T("freeglut"), _T("GLUT's"))) return...
Не получается, емаё

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

Рейтинг@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 кб