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

Вход на сайт

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

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

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

добрый день! при попытке компиляции выдает Source.obj : error LNK2001: неразрешенный внешний символ "__imp_glPointSize" 1>Source.obj : error LNK2001: неразрешенный внешний символ "__imp_glPopMatrix" 1>Source.obj : error LNK2001: неразрешенный...
Можно точно вот эту программу просто наоборот типа:4,3,2,1,4 вот так надо двигаться
Здравствуйте. Спасибо за полезную инфу про уравнения а не матрицы. Во всём интернете только матрицы. У Вас опечатка в уравнении вращения по Z в координате Y= надо минус добавить И ещё. Все предыдущие уравнения можно подставить в последнее уравнение...
WebGL API Tutorial WebGL wiki Adding 2D content to a WebGL context

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

Рейтинг@Mail.ru Яндекс.Метрика
Среда программирования: 
Delphi (Lazarus)

Линейное движение по однородному фону является довольно простым в плане программной реализации. Достаточно закрашивать объект цветом фона, изменять его координаты и прорисовывать в новом месте, повторяя эти действия через определенный интервал времени.

Для реализации анимации, помимо двух уже известных компонентов TPaintBox (поле для рисования) и TButton (кнопка запуска), понадобится компонент TTimer со вкладки System. Компонент Timer имеет единственное событие OnTimer, которое выполняется пока Timer включен с интервалом по времени, установленным в свойстве Interval.

Расположите компонент Timer1 на форме. Установите его свойства Timer1.Interval := 100 и Timer1.Enabled := false

В коде программы необходимо прописать три процедуры (см. урок "Процедуры и функции при построении изображений"). Процедуру отрисовки объекта procedure TForm1.Cloud, процедуру, отрабатывающую на событие OnTimer, - procedure TForm1.Timer1Timer и процедуру запуска анимации, срабатывающую на нажатие кнопки, procedure TForm1.Button1Click.

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons,
  ExtCtrls, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    PaintBox1: TPaintBox;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
     // координаты прорисовки объекта. Доступны всем процедурам класса TForm1 
     x1, y1 : Integer; 
  public
    { public declarations }
    // процедура прорисовки облака
    procedure Cloud (x, y: Integer; ColorCloud: TColor);
  end; 
 
var
  Form1: TForm1;
 
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Cloud(x, y: Integer; ColorCloud: TColor);
begin
  // прорисовка облака из двух эллипсов
  with PaintBox1.Canvas do begin
   Pen.Style := psClear;
   Brush.Color := ColorCloud;
   Ellipse(x,y,x+80,y+40);
   Ellipse(x+30,y+10,x+100,y+50);
  end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  // установка начальных значений
  x1:=0;
  y1:=50;
  Timer1.Interval:=100;
  // прорисовка картинки по которой двигается объект
  PaintBox1.Canvas.Brush.Color := clBlue;
  PaintBox1.Canvas.Rectangle(0,0, PaintBox1.Width, PaintBox1.Height);
  // Включение таймера - запуск анимации 
  Timer1.Enabled := true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // Закраска объекта цветом фона
  Cloud(x1,y1,clBlue);
  // Изменение координат прорисовки
  x1:=x1+1;
  // Прорисовка объекта в новом месте
  Cloud(x1,y1,clWhite);
end;
 
end.