Главная страница
    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.042 c
2-1211121472
navigator
2008-05-18 18:37
2008.06.08
липучка для формы


15-1209363053
БарЛог
2008-04-28 10:10
2008.06.08
Собираюсь купить домен


2-1210756124
WebSQLNeederr
2008-05-14 13:08
2008.06.08
Как сделать что бы можно было копировать ячейки СтригГрида?


15-1209437851
Slider007
2008-04-29 06:57
2008.06.08
С днем рождения ! 29 апреля 2008 вторник


2-1210690049
wnix
2008-05-13 18:47
2008.06.08
Работа с файлом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский