Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 7
1

Надо что бы вместе с кругами рандомно появлялись еще и квадраты отталкиваясь от стенок.

31.03.2012, 18:44. Показов 1266. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
У меня такая вот проблема: мне задали сделать анимацию движущихся рандомно кругов и что бы они отталкивались от стенок, я сделал:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;
 
type
  TForm1 = class(TForm)
 
    Image1: TImage;
    Timer1: TTimer;
    procedure FormActivate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
type mySharik = record
  x,y,r:integer;
  dx, dy: integer;
  Color:TColor;
end;
 
var
  Form1: TForm1;
  a: array of mySharik;
 
implementation
 
{$R *.dfm}
 
procedure InitShariki;
var
 i, r: integer;
begin
  SetLength(a, 100);
  Randomize;
  for i:= 0 to High(a) do
   begin
     r:= random(100) + 5;
     a[i].x:= random(Form1.Image1.Width-r);
     a[i].y:= random(Form1.Image1.Height-r);
     a[i].r:= r;
     a[i].dx:= random(20) - random(20);
     a[i].dy:= random(20) - random(20);
     a[i].Color:=RGB(random(255), random(255), random(255));
   end;
end;
 
procedure PrintShariki;
var
 i:integer;
begin
  Form1.Image1.Canvas.Brush.Color:= clWhite;
  Form1.Image1.Canvas.Rectangle(0,0,Form1.Image1.Width,Form1.Image1.Height);
 
  for i:=0 to High(a) do begin
    Form1.Image1.Canvas.Ellipse(a[i].x,a[i].y,a[i].x+a[i].r,a[i].y+a[i].r);
    Form1.Image1.Canvas.Rectangle(a[i].x,a[i].y,a[i].x-a[i].r,a[i].y-a[i].r);
    Form1.Image1.Canvas.Brush.Color:= a[i].Color;
  end;
end;
 
Procedure MoveShariki;
var
  i: integer;
begin
  for i:= 0 to High(a) do begin
    a[i].x:= a[i].x + a[i].dx;
    a[i].y:= a[i].y + a[i].dy;
    if a[i].x < 0 then a[i].dx:= -a[i].dx;
    if a[i].x > Form1.Image1.Width -a[i].r then a[i].dx:= -a[i].dx;
    if a[i].y < 0 then a[i].dy:= -a[i].dy;
    if a[i].y > Form1.Image1.Height -a[i].r then a[i].dy:= -a[i].dy;
  end;
end;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
  InitShariki;
  PrintShariki;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  MoveShariki;
  PrintShariki;
end;
 
end.
Теперь мне дали дополнительное задание: надо что бы вместе с кругами рандомно появлялись еще и квадраты отталкиваясь от стенок, я уже сколько сижу никак не могу придумать ничего, помогите пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2012, 18:44
Ответы с готовыми решениями:

Реализовать задачу: В окне перемещаются объекты, отталкиваясь от стенок окна
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток,...

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток,...

5-10 кругов появлялись рандомно вверху и, падая вниз, изчезали?
привет а можно по подробнее об круге как сделать так чтобы 5-10 кругов появлялись рандомно вверху и...

Что еще можно параллельно изучать вместе с С++?
Сейчас изучаю С++ по Дейтелам. Собственно, насколько я понимаю, программист - это не только знание...

1
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
31.03.2012, 19:00 2
А какая разница между кругами и квадратами в этом случае? Это такие же фигуры, только оператор для рисования другой
0
31.03.2012, 19:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2012, 19:00
Помогаю со студенческими работами здесь

Что надо еще изучить помимо PHP ?
Привет. я гуглил данный вопрос давно, потом начал самостоятельно изучать. Но еще хочу тут спросить....

добрый день подскажите как подобрать видюху и надо ли что еще? не тянет танки:)
материнка-ecs g31t-m проц-pentium e6500 2.9 видюха-GeForse 8500 GT

Mysqli_stmt_prepare сам зашишает от вреданосных кодов или еще самим надо что то дописать
Mysqli_stmt_prepare сам зашишает от вреданосных кодов или еще самим надо что то дописать

VBA в MS Excel надо чтобы все введённые значения появлялись на листе только после закрытия последней
Делал психологический тест в Excel, каждый вопрос появляется в своей UserForm, в которой есть...

У меня тут небольшая ошибка, дело в том, что программа не воспринимает множество символов, и еще размер надо вводить
У меня тут небольшая ошибка, дело в том, что программа не воспринимает множество символов, и еще...

опять реклама при запуске и еще рандомно
всем привет я новенький, открываются сайты казино в браузере, своими силами решить не смог +...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru