| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Проблема с графикой!!! |
| Автор: Shad-X 23.5.2005, 22:05 |
| Подскажите пожалуйста, как заставить нарисованный в форме круг двигаться с определенной скоростью? Пользователь задает координаты 2х точек и скорость. И кружочек должен перемещаться между этими точками с заданной скоростью! Как мне все это учесть и рассчитать? Нужно ли для этого использовать Таймер, если да, то как? Заранее благодарен! |
| Автор: Snowy 24.5.2005, 16:27 | ||||
| Можешь с таймером, можешь без него. С таймером проще. Принцип простой.
Во-первых скорость нужно спроецировать на x: rx:=rx/pi; Далее по таймеру:
Тут я не описываю a - это коэффициент отклонения от горизонта. Его можно вычислить из прямоугольного треугольника, образованными двумя точками и проекциями на оси. Надеюсь, что не перепутал x и y. |
| Автор: Shadex 24.5.2005, 20:59 |
| Спасибо большое! хотя ещё не совсем разобрался, но надеюсь за ночь напишу! =) |
| Автор: Гость_welt 27.5.2005, 15:51 | ||||
| Давай разбираться. Смотри, можно например, написать уравнение двидения для шарика. x=x0+vt y=sqrt(L*L-(vt+x0)^2). Но можно проще. http://lic1560.narod.ru/hxhy.gif Пишеш уравнение прямой АB, где А и B твои точки. Как уже гоаорилось выше, у тебя будет прямоугольный треугольник. Поэтому например можно разбить обну из его сторон на несколько частей, т.е получить шаг, с которым будем перемещаться по оси ОХ, затем, подставляя этот постоянный шаг в уравнение АВ, будем получать переменный шаг по оси ОУ. (см. рисунок) Далее с этим шагом в цикле рисуешь шарик Кстати, скорость будет зависеть от числа, на которое разобьешь отрезок.. А вот, чтобы использовать таймер. Напиши процедуру Delay вот как..
Получится примерно следующее.
У меня получилось сделать, только когда xa=0 и xb=0, а координа ты второй точки произвольны, уж сам разбирешься как исправить.. |
| Автор: dux 30.6.2005, 13:05 |
| А зачем каждый раз прорисовывать окружность, если можно перемещать сам Image1? |
| Автор: Snowy 30.6.2005, 14:36 | ||
А зачем вообще было поднимать старую тему?
одну из точек принимать за (0,0), а потом просто к обеим прибавлять смещение для отрисовки. Только это уже не актуально. Человеку это уже не нужно - месяц прошел. |