![]() |
Вычисление начальной скорости
Привет!
Помогите решить задачку. Постараюсь растолковать подробно. У меня есть объект. Ему придается начальная скорость по Х. Эта скорость с каждым кадром затухает, т.е. умножается на коэффициент 0.96. Вопрос в том, как мне лучше вычислить стартовую скорость объекта, чтобы он через определенное кол-во кадров очутился на определенном расстоянии? Теперь то же самое конкретнее на примере: Есть объект._х == 0, у объекта есть скорость по Х. Есть ф-ция, которая добавляет к позиции объекта скорость и гасит скорость, умножая ее на коэффициент 0.96. Как проще всего вычислить начальную скорость для этого объекта, чтобы через 50 кадров (т.е. через 50 выполнений функции, которая добавляет к позиции объекта скорость и затухает ее) позиция объекта по Х стала, скажем, 300 ? Надеюсь, доходчиво. Спасибо. |
А не проще xCurrent+=(xTarget-xCurrent)/кол-во кадров?
|
Мне нужно вычислить начальную скорость для объекта, а не перемещать его. Это для AI, чтобы комп мог рассчитать силу, с которой надо бросить предмет на определенное расстояние.
|
Можно воспользоваться формулами движения. Либо взять из школьной физики (или математики), либо придумать самому.
В общем: путь является интегралом от скорости. Вы можете вывести нужную вам формулу и запрограммировать вычисление нужных значений исходя из неё. Можно просто начинать считать с конца. Взять конечную точку (какая, кстати там будет скорость?) и пошагово вычислять положение объекта от конца к началу прибавляя скорость. При таком подходе будет присутствовать некоторая погрешность (в том случае, если движение объекта не уложится в целое число шагов). |
Да, я уже разобрался. Натуральный логарифм помогает в данном случае.
Такая формула у меня работает: <нач.скорость> = (<расстояние> * Math.log (<коэф. затухания>)) / (<коэф. затухания-в-степени-равной-колву-кадров> - 1) |
Отличная догадка. :)
Неожиданное простое по реализации решение. |
Совсем в школе не учились? 0,96 это ускорение.
Формула такая Цитата:
Цитата:
Цитата:
Код AS1/AS2:
|
iNils, не та формула.
Это для равноускоренного движения. А у автора затухание зависит от скорости (теоретически, скорость никогда не сведётся к нулю). |
:) У меня 0.96 - это не ускорение, а коэффициент. Скорость на него умножается.
А почему у Вас начальная скорость отрицательная, если начальное положение 0, а конечное - 300? |
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 00:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.