Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.08;
Скачать: CL | DM;

Вниз

Движение точки по окружности   Найти похожие ветки 

 
SadDragon ©   (2008-05-13 04:49) [0]

Уважаемые Мастера! Помогите плз разобраться с задачкой.
Условие: Изобразить на экране точку, которая движется по окружно-сти с постоянной угловой скоростью. Эту угловую скорость можно задавать.
Решение (не могу понять почему не работает):

procedure TForm1.Button1Click(Sender: TObject);
var a, //угол в рад..
   s, //скорость передвижения точки в рад.
   r: double; //радиус
   x0, y0, //центр окр.
   x, y: integer; //текущие координаты точки
begin
  a:=90;
 s:=30;
 x0:=133;
 y0:=133;
 x:=133;
 y:=31;
 r:=30;
 Image1.Canvas.Pixels[x,y]:=clRed;
 a:=a*(pi/180) + s*(pi/180);
 x:=x0 + Round(Cos(a)*r);
 y:=y0 - Round(Sin(a)*r);
 Image1.Canvas.Pixels[x,y]:=clBlack;
 Timer1.Enabled:=true;
end;


Заранее спасибо!


 
Slym ©   (2008-05-13 05:21) [1]

при нажатии Button1Click рисует 1 точку? все правильно :)
телепатор подсказывает что есть Timer1OnTimer... если это так то x, y: integer;//текущие координаты точки в ней другие :) и там рисуется другая точка...
Решение вынеси переменные из Button1Click


 
Рамиль ©   (2008-05-13 09:11) [2]


> var a, //угол в рад..
>    s, //скорость передвижения точки в рад.
>    r: double; //радиус
>    x0, y0, //центр окр.
>    x, y: integer; //текущие координаты точки

Странный алгоритм какой то.
Если a и s в радианах, то на кой умножать их на пи/180?
Если в комментариях ошибка, то даже 30 градусов это очень много - 12 точек всего лишь, какя тут окружность, это многоугольник.
Скорость измеряется в чем-то/на время. То бишь 30 это должно быть 30 градусов/секунда?

Тогда ставишь таймер на время 50, и каждый раз увеличиваешь угол на 30/20 = 1.5 градуса.


 
Рамиль ©   (2008-05-13 09:12) [3]

Это в дополнение к
> Slym ©   (13.05.08 05:21) [1]


 
SadDragon ©   (2008-05-14 05:14) [4]

Ок, спасибо за советы! =)
Буду пробовать...



Страницы: 1 вся ветка

Текущий архив: 2008.06.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
2-1210856525
Гена_88
2008-05-15 17:02
2008.06.08
SQL in Delphi


3-1199497352
DimonS
2008-01-05 04:42
2008.06.08
Хитрый отчет в FastReport


15-1209313105
Simpson
2008-04-27 20:18
2008.06.08
Вирусы


15-1209119813
sql
2008-04-25 14:36
2008.06.08
MS SQL 2000


4-1190990109
hinst
2007-09-28 18:35
2008.06.08
DrawTextRect