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

Вход на сайт

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

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

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

Здравствуйте, Ильгиз. Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими...
Я хотел узнать математика это обязательно в программирование. Пять лет назад просто из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java. Как то не задумывался и начал смотреть форумы и узнал что без математики не...
Все верно, но так же необходимо зайти в: Компоновщик -> Ввод -> Дополнительные зависимости Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это: SDL2.lib SDL2main.lib SDL2test.lib Без этого не заработает. (MVS 2015)
Спасибо за реализацию, она действительно быстрая. Но не все линии отрисовывает в нужную сторону... Необходимо добавить проверку для случая X-линии if(y1 "<" y0) grad=-grad; и аналогично для Y-линии if(x1 "<" x0) grad=-grad; P.S. На...
Отличные уроки(учу GL по ним), только в renderScene нужно добавить очистку буфера цвета и буфера глубины. При изменении размеров треугольники размножаются)

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

Яндекс.Метрика Рейтинг@Mail.ru
Фирма ДС-Кровля изготовит водосточные системы из пластика цена оптом.
Скриншот к примеру
Среда программирования: 
Lazarus
Статья по теме: 

Задача - построить алгебраический фрактал - биоморф на языке программирования Pascal.

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

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    PaintBox1: TPaintBox;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
type
	TComplex = record          //типизированные константы
		X : Real;
		Y : Real;
	end;
const
        //после какого количества шагов, функция должна прекрать работу
	iterations = 50;
	max  = 70;
var
	z, t, c : TComplex;          //комплексные переменные
	x, y, n : Integer;
	xc, yc  : Integer;            //координаты центра PaintBox1
        colour: TColor;             //цвет
begin
with PaintBox1.Canvas do Begin
  Randomize;
  Clear;                      //очищаем PaintBox1
   xc := Width div 2;                  //находим координаты центра PaintBox1
   yc := Height div 2;
   // проходим каждый пиксель диапазона на экране
   	for y := -yc to yc do
		for x := -xc to xc do
		begin
			n := 0;
                        z.x := x * 0.01;
			z.y := y * 0.01;
                        //выбираем значения константы с, которая определяет форму биоморфа
                        c.x := 1.00003;
			c.y := 1.01828;
 
                        //вычисляем реальную и мнимую части числа z
			while ((sqr(z.x) < max) and (sqr(z.y) < max)) and (n < iterations) do
			begin
                                //запоминаем предыдущее значение
                                t := z;
				//z^4 + c
                                //вычисление в текущем значении n < iterations
                                z.x := t.x * t.x * t.x * t.x + t.y * t.y * t.y * t.y -
					6 * t.x * t.x * t.y * t.y + c.x;
				z.y := 4 * t.x * t.x * t.x * t.y - 4 * t.x * t.y * t.y * t.y + c.y;
 
				n:=n+1;
   			end;
			if (abs(z.x) > 10) or (abs(z.y) > 1000) then
                        begin
                          //выбираем цвет по числу итераций
                          colour := n mod 16;
                          Pixels[xc+x,yc+y]:=RGBToColor(colour,0,0);
			end;
 
		end;
 
end;
end;
 
end.

Прикрепленный файлРазмер
Stus_biomorf.rar1.06 Мб