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

Вход на сайт

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

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

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

torrvic, возможно, Вам нужно добавить -lGLU
Извините за тупой вопрос. У меня при сборке Вашего примера выходит ошибка: "undefined reference to gluLookAt". Не могу найти в какой библиотеке находится эта функция. У меня задано: -lGL -lglut ... Искал в /usr/lib таким образом: nm lib*so* | grep...
Здравствуйте. Спасибо за проект. У меня вопрос, по какой причине определение принадлежности точки многоугольнику работает некорректно, если координаты из больших чисел состоят, например: int[] vertex = new int[] {...
Сейчас проверила нашла причину не запускания // Создание контекста воспроизведения OpenGL и привязка его к панели на форме OpenGLControl1:=TOpenGLControl.Create(Self); with OpenGLControl1 do begin Name:='OpenGLControl1'; //вот тут...
Ну..кажется что то пошло не так http://pp.usera...

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

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