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

Вход на сайт

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

Построения
на плоскости (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 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 Burning_Ship
{
    public partial class Form1 : Form
    {
        public Graphics graph; //Графика
        public Bitmap map; //Битмап
        public Brush br; //Кисть
 
        //После какого количества итераций функция должна прекращать работу
        public int iter = 30; 
        public int max = 16;
 
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            map = new Bitmap(pictureBox1.Width, pictureBox1.Height);//Подключаем Битмап
            graph = Graphics.FromImage(map); //Подключаем графику
            graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//Включаем сглаживание
            graph.Clear(Color.Black); //Черный фон
 
            //Координаты центра
            int yc = pictureBox1.Height / 2;
            int xc = pictureBox1.Width / 2;
 
            //Комплексные числа
            PointF z = new PointF();
            PointF t = new PointF();
            PointF c = new PointF();
 
            //переменная для подсчета итераций
            int n;
 
            for(int y = -yc; y <= yc; y++)
            {
                for(int x = -xc; x <= xc; x++)
                {
                     n = 0;
 
                    //Установим начальное значение  константы С
                    //которая определяет форму фрактала
                    c.X = x * 0.01f - 0.2f;
                    c.Y = y * 0.01f - 0.3f;
 
                    //Начальное значение действительной и мнимой частей числа Z
                    z.X = 0f;
                    z.Y = 0f;
 
                    //вычисляем реальную и мнимую части числа z
                    while (((Math.Pow(z.X, 2) + Math.Pow(z.Y, 2)) < max) && (n < iter))
                    {
                        //Запоминаем предыдущее значение
                        t = z;
 
                        //Вычисление в текущем значении n < iterations
                        z.X = (float)(Math.Pow(t.X, 2) - Math.Pow(t.Y, 2) + c.X);
                        z.Y = 2 * Math.Abs(t.X * t.Y) + c.Y;
 
                        //увеличиваем количество итераций
                        n++;
                    }
 
                    if ( n < iter)
                    {
                        //выбираем цвет по числу итераций
                        //можно выбрать одно из значений переменной clr
                        //для изoбражения фрактала в разной цветовой палитре
 
                        int r = (50 * n) % 256;
                        Color clr = new Color();
                        clr = Color.FromArgb(r, 0, 0);
                        br = new SolidBrush(clr);
 
                        //Отрисовка пикселя соответствующим цветом
                        graph.FillRectangle(br, xc + x, yc + y, 1, 1);
                    }
 
                }
            }
 
            //Переносим изображение из битмапа на picturebox
            pictureBox1.BackgroundImage = map;
 
        }
    }
}

Прикрепленный файлРазмер
Burning Ship.zip52.61 кб