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

Вход на сайт

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

Построения
на плоскости (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
Voucherbadger has 2 valid Argos promo codes
Язык программирования: 
Pascal
Среда программирования: 
Lazarus

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, ComCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    PaintBox1: TPaintBox;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Resizing(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
 
  private
    { private declarations }
  public
    { public declarations }
    // процедура прорисовки облака
    procedure Cloud (x, y: Integer; ColorCloud: TColor);
  end;
 
var
  Form1: TForm1;
  i: double;
   x0, y0, x1, y1, x2, y2, x3, y3, x4, y4 : integer;
  center1, center2 : integer;
  radius, diameter: integer;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Resizing(Sender: TObject);
begin
      center1:= round(Form1.Width/2);
      center2:= round(Form1.Height/2);
 
      Button1.Top:=Form1.Height-34;
 
      PaintBox1.Width:=Form1.Width - 10;
      PaintBox1.Height:=Form1.Height - 54;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  i:=i+pi/36;
  // Изменение координат прорисовки
     x1:=round(center1-radius*sin(i));
     y1:=round(center2+radius*cos(i));
     x2:=round(center1+radius*sin(i+pi/3));
     y2:=round(center2-radius*cos(i+pi/3));
     x3:=round(center1-radius*sin(i+2*pi/3));
     y3:=round(center2+radius*cos(i+2*pi/3));
  // Прорисовка объекта в новом месте
   Cloud(x1,y1,clRed);  //Красный круг
   Cloud(x2,y2,clGreen);//Зеленый круг
   Cloud(x3,y3,clYellow);//Желтый круг
end;
procedure TForm1.Cloud(x, y: Integer; ColorCloud: TColor);
begin
  // прорисовка облака из двух эллипсов
  with PaintBox1.Canvas do begin
   Pen.Style := psClear;
   Brush.Color := ColorCloud;
   Ellipse(x-diameter,y-diameter,x+diameter,y+diameter);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  i:=0;
  radius:= 90;
  diameter := 50;
  // прорисовка картинки по которой двигается объект
  PaintBox1.Canvas.Brush.Color := clBlue;
  PaintBox1.Canvas.Ellipse(center1-diameter,center2-diameter, center1+diameter, center2+diameter);
  // Включение таймера - запуск анимации
  Timer1.Enabled:=true;
end;
 
end.

Прикрепленный файлРазмер
Google Edition.rar2.64 кб