Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
nikitoto
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 53
1

Анимация в Delphi

18.11.2011, 09:00. Просмотров 3255. Ответов 2
Метки нет (Все метки)

Здравствуйте. Помогите создать анимацию в Delphi. Суть анимации такова. Квадрат постепенно превращается в круг и на конечном этапе меняется цвет фигуры. И вся эта изменяющаяся фигура перемещается по какой либо траектории (возможно произвольной). Заранее спасибо
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 09:00
Ответы с готовыми решениями:

Анимация в Delphi
Разработать программный продукт, демонстрирующий движение пятиугольника, меняющий свой цвет при...

Анимация в Delphi
Вопрос программистам. Как в Delphi открыть анимацию (подключить) через Image, Animate или ещё...

Анимация в Delphi
Здравствуйте. Хочу сделать анимацию загрузки в своей программе. Читал что компонент Image1 это...

Анимация в Delphi
Помогите сделать анимацию в Делфи. У меня ничего не получается. Снизу прикрепленный файл того что у...

Анимация Delphi
Требуется составить программу демонстрирующую соударение двух прямоугольных тел, с заданными...

2
Puporev
Модератор
58534 / 44452 / 30691
Регистрация: 18.05.2008
Сообщений: 106,505
19.11.2011, 10:50 2
Лучший ответ Сообщение было отмечено nikitoto как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    procedure Mng(n,x0,y0,r:integer);//процедура рисования многоугольника
  end;
 
var
  Form1: TForm1;
  x,y,n,r:integer;//координаты центра фигуры, кол. вершин и радиус
implementation
 
{$R *.dfm}
procedure TForm1.Mng(n,x0,y0,r:integer);
//n - количество вершин
// x0,y0 - координаты центра фигуры
// r - радиус фигуры
var p:array of TPoint; // массив координат вершин
    a,da:real;   // угол между осью ОХ и прямой, соединяющей
                  // центр фигуры и вершину и приращение
    i:integer;
begin
 Setlength(p,n+1);
 a :=pi/4; // начальный угол
 da:=2*pi/n;
 for i:=0 to n-1 do
  begin
    p[i].x:=x0+Round(r*cos(a));
    p[i].y:=y0-Round(r*sin(a));
    a := a+da;
  end;
    p[n].X := p[0].X; // чтобы замкнуть контур звезды
    p[n].Y := p[0].Y;
    with Canvas do
     begin
      Pen.Color:=clRed;
      Canvas.Polygon(p); // начертить контур фигуры
     end;
end;
//задание параметров
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled:=false;
n:=4;
r:=40;
x:=r;
y:=clientheight div 2;
Form1.Color:=ClWhite;//форма белая
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
Timer1.Interval:=1000;
with Canvas do
 begin
  Pen.Color:=clRed;
  Rectangle(x-r,y-r,x+r,y+r)//рисуем квадрат
 end;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var dx:integer;
begin
dx:=(clientwidth+r) div 20;//шаг по оси Х
Canvas.Brush.Color := ClWhite;//очистка Canvas
Canvas.FillRect(Canvas.ClipRect);
x:=x+dx;
y:=y-round(sin(x*pi/180)*r); //движемся по синусоиде
{if x mod 20=0 then }n:=n+1;//увеличиваем количество вершин
if n<=20 then Mng(n,x,y,r)//рисуем фигуру
else  //окончание движения
 begin
  Timer1.Enabled:=false;
  with Canvas do
   begin
    Pen.Color:=clBlue;
    Ellipse(x-r,y-r,x+r,y+r)
   end;
 end;
end;
 
end.
0
Вложения
Тип файла: rar Движение квадрата по синусоиде.rar (162.9 Кб, 246 просмотров)
als_2991
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 7
19.11.2011, 17:11 3
Спасибо большое.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 17:11

анимация в delphi 7
Помогите,пожалуйста,написать простую анимацию:рыбки,плавающие в аквариуме или божью...

Анимация в Delphi
помагите написать прогу плиз... Написать программу, используя которую можно просмотреть...

Анимация в Delphi 7.0
Изобразить свет прожектора следующим образом. В левом верхнем углу нарисовать неподвижную фигуру,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.