Движение картинки по кругу

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Движение картинки по кругу

Сообщение Vstr » 14.06.2016 16:30:12

Задание "При нажатии на кнопку "Старт" шар начинает двигаться по кругу, при нажатии кнопки "Стоп" останавливается". Этот код не работает.
И другое "При нажатии на кнопку "Старт" метка двигается слева на право до края формы, где и останавливается"
Помогите пожалуйста! Или подскажите где посмотреть. Спасибо!

procedure TForm1.Button1Click(Sender: TObject);
var k,spd,a : integer ;
begin
k:=60;
a:=10 ;
spd:=50;
Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var k,spd,cx,cy,a : integer ;
begin
cx:=240+Shape1.Width div 2 ;
cy:=184+Shape1.Height div 2;
a:=a+spd;
Shape1.Left:=cx+Round(cos(a)*k);
Shape1.top:=cx+Round(sin(a)*k);
end;
Vstr
незнакомец
 
Сообщения: 3
Зарегистрирован: 13.06.2016 16:41:39

Re: Движение картинки по кругу

Сообщение Лекс Айрин » 14.06.2016 16:38:54

А перерисовать сдвигаемый компонент? Он то должен получить команду, что местоположение изменилось.

Код: Выделить всё
....
Shape1.Left:=cx+Round(cos(a)*k);
Shape1.top:=cx+Round(sin(a)*k);
Share1.Repaint;

Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Движение картинки по кругу

Сообщение Mirage » 14.06.2016 23:11:34

Двигать по 50 радиан за шаг? Многовато будет!
Если spd подразумевается в градусах, то надо переводить:
Код: Выделить всё
Shape1.Left:=cx+Round(cos(a/180*pi)*k);
Shape1.top:=cx+Round(sin(a/180*pi)*k);


Хотя 50 градусов тоже многовато, не?
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Движение картинки по кругу

Сообщение resident » 15.06.2016 02:13:57

Vstr писал(а):Или подскажите где посмотреть

Сделал так, что на 12 часов - красный, на 4 - синий, а на 8 - зеленый.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 226

Рейтинг@Mail.ru