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

Вход на сайт

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

Построения
на плоскости (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
kids tracking devices
Язык программирования: 
Pascal
Среда программирования: 
Lazarus

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    PaintBox1: TPaintBox;
    Timer1: TTimer;
    Timer2: TTimer;
    Timer3: TTimer;
    Timer4: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
  private
    { private declarations }
    procedure box;
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  x, i : integer;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
      begin
        PaintBox1.Canvas.Brush.Color := clBlue;
        x:=0;
        TIMER1.Enabled:= TRUE;
         PaintBox1.Canvas.Brush.Color := clBlue;
         Timer1.Interval:=30;
         Timer3.Interval:=30;
 end;
 
 
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 
  x:= x+1;
 
    box;
    if x>=15 then begin
      with Paintbox1.Canvas do begin
    Brush.Color := RGBToColor(200,160,0);    //Добавление Желтого цвета
end;
    timer1.enabled:=false;
    timer2.enabled :=true;
  end;
 
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);  //Таймер для секундной задержки
begin
 
     timer3.enabled:=true;
      box;
      timer2.enabled:=false;
end;
 
procedure TForm1.Timer3Timer(Sender: TObject);
begin
 
    x:=x-1;
     box;
    if x<=-20  then begin
    with Paintbox1.Canvas do begin
    Brush.Color := RGBToColor(0,160,200);  //Добавление Синего цвета
end;
      timer3.enabled:=false;
      timer4.enabled:=true;
    end;
end;
 
procedure TForm1.Timer4Timer(Sender: TObject);
begin
    box;
  timer1.enabled:=true;
  timer4.enabled := false;
end;
 
procedure TForm1.box;
var j : integer;
begin
  with Paintbox1.Canvas do begin
for j := 0 to 20 do begin     //Цикл по Горизонтали
   for i := 0 to 20 do  begin   //Цикл по Вертикали
  PaintBox1.Canvas.Rectangle(100*j+ x+18-10,(-30)+i*100-40-100, 100*j+x+24-10,(-10)+i*100-40-100);//1 Линия Вертикальная
  PaintBox1.Canvas.Rectangle(100*j+ 33-10,x+(-45)+i*100-40-100, 100*j+53-10,x+(-39)+i*100-40-100);//2 Линия Горизонтальная
  PaintBox1.Canvas.Rectangle(100*j+ 63-x-10,(-30)+i*100-40-100, 100*j+69-x-10,(-10)+i*100-40-100);//3 Линия Вертикальная
  PaintBox1.Canvas.Rectangle(100*j+ 33-10, (-1)-x+i*100-40-100, 100*j+53-10,    5-x+i*100-40-100);//4 Линия Горизонтальная
  //Создание 1 квадрата
   end;
end;
for j := 0 to 3 do begin     //Цикл по Горизонтали
   for i := 1 to 20 do  begin  //Цикл по Вертикали
  PaintBox1.Canvas.Rectangle(100*j+ x+18+50-10,(-30)+i*100-40+50-100, 100*j+x+24+50-10,(-10)+i*100-40+50-100);//5 Линия Вертикальная
  PaintBox1.Canvas.Rectangle(100*j+ 33+50-10,x+(-45)+i*100-40+50-100, 100*j+53+50-10,x+(-39)+i*100-40+50-100);//6 Линия Горизонтальная
  PaintBox1.Canvas.Rectangle(100*j+ 63-x+50-10,(-30)+i*100-40+50-100, 100*j+69-x+50-10,(-10)+i*100-40+50-100);//7 Линия Вертикальная
  PaintBox1.Canvas.Rectangle(100*j+ 33+50-10, (-1)-x+i*100-40+50-100, 100*j+53+50-10,    5-x+i*100-40+50-100);//8 Линия Горизонтальная
  //Создание 2 крадрата
   end;
end;
 end;
end;
 
end.

Прикрепленный файлРазмер
Box.rar683.95 кб