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

Вниз

простая задачка на геометрию   Найти похожие ветки 

 
nonamez11 ©   (2008-12-22 16:16) [0]

блин тупорылый вопрос но не знаю чо делать(((
надо чтоб по форме летал кружок,и летал по окружности(
я накидал код а он работает не правильно,двигается по окружности но с большими перерывами не плавно((
не знаю в чем проблема.
может кто подскажет?очень надо

procedure TForm7.Timer1Timer(Sender: TObject);

begin
radius:=80;
a:=a+1;
if a>=360 then a:=0;
begin
if (x>0)and(y>=0) then
  begin
   x:=x+round(radius*cos(RadtoDeg(a)));
  y:=y+round(radius*sin(Radtodeg(a)));
  edit1.Text:=inttostr(x)+" "+inttostr(y)+" "+inttostr(a);
  edit2.Text:=floattostr(cos(a));
  end
 else
  begin
   x:=round(ClientWidth/2);
   y:=round(ClientHeight/2);
  end;
 x1:=x+25;
 y1:=y+25;

 Canvas.BrushCopy(MyRect, Bitm, MyRect, clBlack);
 Canvas.Ellipse(x-25,y-25,x1,y1);
 
 MyRect := Rect(x-25,y-25,x1,y1); //

end;
end;


 
Сергей М. ©   (2008-12-22 16:30) [1]


> cos(RadtoDeg(a))


> Sin(Radtodeg(a))


Эти триг.функции требуют параметром угол в радианах, а ты им в градусах пытаешься подсунуть, к тому же в то время как в переменной A у тебя хранится угол в градусах


 
Правильный$Вася   (2008-12-22 16:31) [2]

Application.ProcessMessages


 
nonamez11 ©   (2008-12-22 16:31) [3]

да если изменить не моможет,эт я чо то с калькулятором сравнивал


 
Сергей М. ©   (2008-12-22 16:32) [4]


> Application.ProcessMessages
>


Ни к селу ни к городу оно тут - циклов-то в таймерном обработчике нет


 
Сергей М. ©   (2008-12-22 16:34) [5]


> я чо то с калькулятором сравнивал


Я не знаю,  "чо" ты с "калькулятором сравнивал", но лажа с преобразованием налицо


 
nonamez11 ©   (2008-12-22 16:36) [6]

ну если убрать Radtodeg проблема остается скажем так


 
Сергей М. ©   (2008-12-22 16:38) [7]

Ну если убрать, тогда и число 360 тут ни к селу ни к городу


 
nonamez11 ©   (2008-12-22 16:44) [8]

и что же делать?


 
Сергей М. ©   (2008-12-22 16:49) [9]

Ну очевидно же - если в А у тебя угол в градусах, то его следует преобразовать в радианы для вычисления синуса с косинусом)


 
nonamez11 ©   (2008-12-22 16:58) [10]

Точна!)я был недалек от разгадки)))спасибо)))



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

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

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1230112638
J.T
2008-12-24 12:57
2009.02.08
BorderIcons


1-1207734351
9899100
2008-04-09 13:45
2009.02.08
TTreeView


15-1229002101
Ru
2008-12-11 16:28
2009.02.08
PGP Virtual Disk


2-1230040403
Otec MALDUN
2008-12-23 16:53
2009.02.08
Диспечер задачь


3-1214818168
Новичек
2008-06-30 13:29
2009.02.08
Как сделать обратную сортировку в TClientDataSet?