-
> Подумаешь... стёрлась пара скобой. Беда какая. :)
Эти скопки можно поставить двумя вариантами с разным результатом
Может, тебе тогда стоит не озадачивать других своими вопросами? Подумаешь... беда какая.
-
Проще не диф уравнением, а сразу выводить в координатах окружности вычисляяя нужную дугу. Тогда никаких прмахов не будет.
-
> Эти скопки можно поставить двумя вариантами с разным результатом
И кто же, таким образом, сделает? :) .
> Может, тебе тогда стоит не озадачивать других своими вопросами?
Не надо путать вопрос от опечатки. Тем более там стоит смайл.
2 Дуб
Можно поподробней?
-
не удержался и не дочитал примерно половину
но если есть исходные координаты и конечные координаты
то на кой черт нужен угол?
разве нельзя обойтись линейной интерполяцией?
-
> Можно поподробней?
У тебя движение по окружности(при угле не краном пипополам). Ну и надо ставить точку в нужное место окружности.
-
> Дуб © (08.01.09 12:26) [24]
Тьфу ты. Не по окружности - по прямой. Вот и надо по этой прямой двигаться. Не дифференцировано на каждом шаге, а в общем.
-
есть мысль... при определенном стечении обстоятельств
X:= X + Cos(DegToRad(Angle)) * Speed);
Y:= Y + Sin(DegToRad(Angle)) * Speed);
окажется дальше по азимуту чем конечная точка...
и условие
If (Panel1.Left = GotoPoint.X) and (Panel1.Top = GotoPoint.Y) then EXIT
не выполнится никогда...
хотя, конечно, это только при speed > 0.5
но нам об этом ничего неизвестно...
-
> то на кой черт нужен угол? разве нельзя обойтись линейной > интерполяцией?
В данном случае конечно можно, когда дана конечная точка.
А если её нет?
Представим себе игрока. Движение осуществляется по этой формуле. Теперь, нам нужно просто изменить угол и всё. Спрайт будет двигаться всегда туда, куда смотрит. (Нужно незабывать его вращать на заданный угол, естественно).
> не выполнится никогда...
Да, условие не всегда выполнится, если скорость будет слишком большая.
Помотому что, точка будет совершать скачкообразные движения и может просто немного перепрыгнуть конечную точку.
-
> Движение осуществляется по этой формуле.
Надо значит не по этой. А всегда иметь в памяти предполагаемую точку попадания (реальную или взятую какм ожно дальше), которую вычисляем исходя из начальной точки и угла. Тогда никуда мы не съедем и попадем куда надо. Всегда.
> Помотому что, точка будет совершать скачкообразные движения
> и может просто немного перепрыгнуть конечную точку.
Если все так плохо, то можно строить проекции на отрезок перемещения. Если пересекла - было попадание.
-
Всё. Тема Закрыта. Спасибо.
-