Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.047 c
2-1210942831
Artin
2008-05-16 17:00
2008.06.08
Хочетья список как Object Inspector в Дельфи.


3-1198763654
squirrel
2007-12-27 16:54
2008.06.08
SQL запрос


2-1210878036
Zoom
2008-05-15 23:00
2008.06.08
Transparent Bitmap и Cаnvas?


8-1180962851
Igor_thief
2007-06-04 17:14
2008.06.08
Screenshot формы (с рамкой)


8-1181815939
MovieMan
2007-06-14 14:12
2008.06.08
Модули для lame_enc.dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский