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

Вход на сайт

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

Построения
на плоскости (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
Скриншот к примеру
Среда программирования: 
Pascal ABC.NET
Статья по теме: 

Программа реализующая кривую Госпера.

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

Uses CRT, GraphABC;
 
Procedure Draw(a, b, c, u : Real; n, m : Integer);
 
Procedure Draw2(Var a, b: Real; v, u : Real; n, m : Integer); //переменные
 
Begin
     Draw(a, b, c, u, n, m); 
       a := a + c*cos(u); //основные формулы для построения
       b := b - c*sin(u)
End;
 
Begin
     If n > 0 Then //цикл построения ломанных линий
     Begin
          If m = 1 Then
          Begin
               a := a + c*cos(u);
               b := b - c*sin(u);
               u := u + pi
          End;
          u := u - 2*pi/19; //соединение ломанных линий
          c := c/sqrt(7); //задаем масштабирование 
          Draw2(a, b, c, u, n-1, 0); //функции прорисовок
          Draw2(a, b, c, u+pi/3, n-1, 1);
          Draw2(a, b, c, u+pi, n-1, 1);
          Draw2(a, b, c, u+2*pi/3, n-1, 0);
          Draw2(a, b, c, u, n-1, 0);
          Draw2(a, b, c, u, n-1, 0);
          Draw2(a, b, c, u-pi/3, n-1, 1)
     End
     Else
         Line(Round(a), Round(b), Round(a + cos(u)*c), Round(b -sin(u)*c))
     End;
 
Begin
     SetWindowCaption('Кривая Госпера');
     Setpencolor(clred);
     SetWindowSize(650,500);
     Draw(100, 355, 400, 0, 4, 0);
End.

Прикрепленный файлРазмер
Krivaya_Gospera.rar57.25 кб