![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
простая задачка на геометрию
nonamez11 © (2008-12-22 16:16:00)блин тупорылый вопрос но не знаю чо делать(((
надо чтоб по форме летал кружок,и летал по окружности(
я накидал код а он работает не правильно,двигается по окружности но с большими перерывами не плавно((
не знаю в чем проблема.
может кто подскажет?очень надо
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;
nonamez11 (2008-12-22 16:58:00) [1]Точна!)я был недалек от разгадки)))спасибо)))
Сергей М. (2008-12-22 16:49:00) [2]Ну очевидно же - если в А у тебя угол в градусах, то его следует преобразовать в радианы для вычисления синуса с косинусом)
nonamez11 (2008-12-22 16:44:00) [3]и что же делать?
Сергей М. (2008-12-22 16:38:00) [4]Ну если убрать, тогда и число 360 тут ни к селу ни к городу
nonamez11 (2008-12-22 16:36:00) [5]ну если убрать Radtodeg проблема остается скажем так
Сергей М. (2008-12-22 16:34:00) [6]
> я чо то с калькулятором сравнивал
Я не знаю, "чо" ты с "калькулятором сравнивал", но лажа с преобразованием налицо
Сергей М. (2008-12-22 16:32:00) [7]
> Application.ProcessMessages
>
Ни к селу ни к городу оно тут - циклов-то в таймерном обработчике нет
Правильный$Вася (2008-12-22 16:31:00) [8]Application.ProcessMessages
nonamez11 (2008-12-22 16:31:00) [9]да если изменить не моможет,эт я чо то с калькулятором сравнивал
Сергей М. (2008-12-22 16:30:00) [10]
> cos(RadtoDeg(a))
> Sin(Radtodeg(a))
Эти триг.функции требуют параметром угол в радианах, а ты им в градусах пытаешься подсунуть, к тому же в то время как в переменной A у тебя хранится угол в градусах