Консультация № 159872
07.02.2009, 18:17
0.00 руб.
0 7 0
Здравствуйте!
Необходимо сделать простую анимацию shape1 из координат x1 y1 до x2 y2
Подскажите пожалуйста, как можно реализовать это?

Обсуждение

давно
Мастер-Эксперт
425
4118
07.02.2009, 19:44
общий
Можно в цикле менять координаты от Х1 до Х2. Ну и У соответственно. В самом цикле сделать задержку в полсекунды (Sleep(500)), а то компьютеры нынче сильно быстрые.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
07.02.2009, 19:49
общий
необходимо написать уравнение линии??
Неизвестный
07.02.2009, 19:55
общий
ну да это на ответ даже не тянет. Меняйте значение Left и Top у компонента. Координаты задаются относительно формы.
давно
Мастер-Эксперт
425
4118
07.02.2009, 20:05
общий
Если движение компонента должно идти по линии, то да, линии. Вы же не написали, какая именно должна быть у Вас анимация. Поэтому я изложил Вам только принцип - меняете координаты компонента в пределах заданных от Х1 до Х2. Это будет движение по горизонтали. Если от У1 до У2 - это будет движение по вертикали. Скомбинируете и то и другое - движение будет такое же комбинированное.
Для Вас сейчас главное определиться, какое именно движение Shape должно быть. Возьмите миллиметровку или бумагу в клеточку, нарисуйте на ней форму. На фоме нарисуйте Shate в своих начальных координатах. Обозначте конечную точку его движения и постройте график. По этому графику уже вывести уравнение движения - раз плюнуть.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
07.02.2009, 20:57
общий
уравнение написал, пишу код в таймер

for x:=0 to 500 do
begin
Shape1.Left:=x;
Shape1.Top:=x;
end;

он сразу перескакивает, как сделать чтобы он как бы летел к этой точке а не сразу туда перемещался)
Неизвестный
07.02.2009, 21:54
общий
application.processmessage вставь в цикл
Неизвестный
07.02.2009, 22:11
общий
о, спасибо!
Всё как надо получилось!
Форма ответа