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

Вход на сайт

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

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

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

Спасибо за реализацию, она действительно быстрая. Но не все линии отрисовывает в нужную сторону... Необходимо добавить проверку для случая X-линии if(y1 "<" y0) grad=-grad; и аналогично для Y-линии if(x1 "<" x0) grad=-grad; P.S. На...
Отличные уроки(учу GL по ним), только в renderScene нужно добавить очистку буфера цвета и буфера глубины. При изменении размеров треугольники размножаются)
как исправить это , сделал все по инструкции
Timer1 - выдает ошибку. Использовал IdleTimer1, работает! unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, OpenGLContext, GL, GLU; type { TForm1 } TForm1 =...
в коде присутствуют ошибки! // Считываем координаты procedure TForm1.getCoords(Sender: TObject); var j1:longint; begin n:= StrToInt(Edit2.Text); //число точек s1:=Edit1.Text; s2:=''; i := 1; j:=1; k:=0...

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

Яндекс.Метрика Рейтинг@Mail.ru
Скриншот к примеру
Среда программирования: 
Visual Studio 2012
Статья по теме: 

Фрактал отрисовывается при нажатии на форму.

Код программы: 

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 Tree_Levy
{
    public partial class Form1 : Form
    {
        Pen p;
        SolidBrush fon;
        Graphics gr;
 
        int i = 15;
 
        public Form1()
        {
            InitializeComponent();
 
            p = new Pen(Color.Lime, 2);
            fon = new SolidBrush(Color.Black);
            gr = pictureBox1.CreateGraphics();
            gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
        }
 
        void Draw_Levy(Graphics gr, Pen p, SolidBrush fon, int x1, int x2, int y1, int y2, int i)
        {
            if (i == 0)
            {
                gr.DrawLine(p, x1, y1, x2, y2);
            }
            else
            {
               int x3 = (x1 + x2) / 2 + (y2 - y1) / 2;
               int y3 = (y1 + y2) / 2 - (x2 - x1) / 2;
 
                Draw_Levy(gr, p, fon, x1, x3, y1, y3, i - 1);
                Draw_Levy(gr, p, fon, x3, x2, y3, y2, i - 1);
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            gr.FillRectangle(fon, 0, 0, pictureBox1.Width, pictureBox1.Height);
 
            Draw_Levy(gr, p, fon, 250, 400, 160, 160, i); // Строим кривую Леви
            Draw_Levy(gr, p, fon, 400, 400, 160, 310, i); // на каждой
            Draw_Levy(gr, p, fon, 400, 250, 310, 310, i); // стороне 
            Draw_Levy(gr, p, fon, 250, 250, 310, 160, i); // квадрата
        }
    }
}

Прикрепленный файлРазмер
Island.rar46.92 кб