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

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

Построения
на плоскости (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 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.zip55.04 кб