Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2007, 09:18   #1
гера
 
Регистрация: 14.04.2007
Сообщений: 5
По умолчанию timer и shape

Привет!
пример простой но до меня не доходит почему рисуется не последоваетльно, а как попало скачет...

procedure TForm1.Timer_1Timer(Sender: TObject);
begin
timer_2.Enabled:=true;
Timer_1.Enabled:=false;
shape2.Left:=160;
shape2.top:=88;
end;
procedure TForm1.Timer_2Timer(Sender: TObject);
begin
timer_3.Enabled:=true;
Timer_2.Enabled:=false;
shape2.Left:=296;
shape2.top:=88;
end;

procedure TForm1.Timer_3Timer(Sender: TObject);
begin
timer_4.Enabled:=true;
Timer_3.Enabled:=false;
shape2.Left:=296;
shape2.top:=216;
end;

procedure TForm1.Timer_4Timer(Sender: TObject);
begin
timer_1.Enabled:=true;
Timer_4.Enabled:=false;
shape2.Left:=168;
shape2.top:=216;
end;


Zain'ka (11:09:25 14/04/2007)
там в центре квадрат, а вокруг него дожен двигаться круг.
гера вне форума Ответить с цитированием
Старый 14.04.2007, 11:05   #2
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Мне кажется, что ответ на этот вопрос уже был в форуме -> http://www.programmersforum.ru/showthread.php?t=2946
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 16.04.2007, 16:39   #3
гера
 
Регистрация: 14.04.2007
Сообщений: 5
По умолчанию

ну у меня же по другому принципу движение. тут задано 4 точки в которых должен появиться шарик. а он или нормально двигается или не правильно...(((

что делать?

а! и по тому примеру, (который указан), у меня тоже не получается красивого движения а что то типа быстрого рывка и малеьких шажков потом, как со вторым согласовать чтоб один вокруг другого?
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Shape1: TShape;
    Shape2: TShape;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
 ang, //текущее положение в радианах
spd, //скорость (на сколько радиан передвигать каждый раз)
rad: Double; //радиус окружности
cx, cy, //координаты центра окр. 
x, y: Integer; //текущие коорд. точки
k: integer;
implementation

{$R *.dfm}
Procedure Dvij;
Begin
if Form1.Shape1.Width>Form1.Shape1.Height then
k:=Form1.Shape1.Width
else
k:=Form1.Shape1.Height;
cx:=Form1.Shape1.Left+Form1.Shape1.Width div 2;
cy:=Form1.Shape1.Top+Form1.Shape1.Height div 2;
//k:=k div 2;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 begin
Dvij;
ang:=ang + spd;
Shape2.Left:=cx + Round(Cos(ang) * k);
Shape2.Top:=cy + Round(Sin(ang) * k);
end;
 end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 ang:=10;
spd:=0.15;
end;

end.
гера вне форума Ответить с цитированием
Старый 16.04.2007, 16:54   #4
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Цитата:
а! и по тому примеру, (который указан), у меня тоже не получается красивого движения а что то типа быстрого рывка и малеьких шажков потом, как со вторым согласовать чтоб один вокруг другого?
Стартовое значение ang=pi и никаких скачков (т.к. Мировая СК, а не Декартовая СК). Нужна скорость - наращивай spd до pi/2.

Цитата:
ну у меня же по другому принципу движение. тут задано 4 точки в которых должен появиться шарик. а он или нормально двигается или не правильно...(((
А глянь куда шейп помещается.
Выполнение таймеров 2 и 3 надо поменят местами и будет тебе счастье.

З.Ы. Напомню школьный курс.
Уравнение окружности: y=y0+R*sinA; x=x0+R*cosA.
Visita Interiorem Terrae Rectificando Operae Lapidem...

Последний раз редактировалось Сильванович Михаил; 16.04.2007 в 16:57.
Сильванович Михаил вне форума Ответить с цитированием
Старый 16.04.2007, 20:14   #5
гера
 
Регистрация: 14.04.2007
Сообщений: 5
По умолчанию

Спасибо большое)))
гера вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Timer... Teleport Общие вопросы Delphi 13 14.09.2011 17:02
Рисование на Shape Stark[SG!] Мультимедиа в Delphi 8 09.06.2011 13:22
timer ZYRGiX Помощь студентам 3 21.07.2008 15:15
Timer... Roof Общие вопросы Delphi 11 11.10.2007 12:57
timer Toxa Компоненты Delphi 6 06.12.2006 06:58