![]() |
Плавное движение по точкам.
Дан ряд точек. Как бы так двигаться по ним, плавно меняя направления, когда актуальная точка достигнута. Траектория движение напоминает кривую. Нужно сделать попроще. Какие предложения?
|
Ответ: Плавное движение по точкам.
Всякие там эволюты эвольвенты, диффуры да интегралы, если верить справочнику.
Короче голову как у коня размером иметь надо. Но пусть по ломанной траектории двигается некая виртуальная точка к которой стремится твой объект, чем дальше цель тем охотней объект движется прям на точку, чем ближе тем он ленивей реагирует вплоть до нуля при совпадении координат. Если все-равно криво, то пусть объект обладает массой и скоростью, а расстояние до цели говорит о направлении ускорения и его величине. |
Ответ: Плавное движение по точкам.
dsd, вроде бы по делу, но это как это примерно выглядит?)) У меня движение без поворота по векторам образованным при помощи Cos и Sin угла посчитанного Atan2. К этому можно что то добавить чтобы был нужный результат? Инерцию как нибудь замутить?
|
Ответ: Плавное движение по точкам.
Хоспаде. Точку ты двигать по своей ломанной линии можешь.
xEntityX,Y,Z дадут тебе место твоего шара, координаты точки на кривой найти ты наверно тоже можешь. Теперь магия. Считаешь вектор от объекта до точки, нормализуешь его. Считаешь расстояние между точкой и объектом. заводишь три глобальные переменные vx,vy,vz. vx=vx+ax*distance; ........ ax это координаты нормализованного вектора. Способа еще проще я не знаю. ах да xMoveEntity object,vx,vy,vz/ |
Ответ: Плавное движение по точкам.
я юзал кривую безье, суть такова: в 3д максе выставляешь точки, получаешь координаты этих точек и через них строишь кривую безье. в свое время юзал данную статью
|
Ответ: Плавное движение по точкам.
dsd, пджиии. а он точно будет плавно менять цель перемещения, а не просто замедлятся при приближении к цели?
Hurrit, Благодарствую, повникаю в это дело!)) |
Ответ: Плавное движение по точкам.
Да. Точно будет. Клянусь физикой за седьмой класс.
|
Ответ: Плавное движение по точкам.
dsd, вот обязательно надо было упомянуть какой нибудь школьный класс)) Слуш, а у меня он первую точку проходит, а на второй встревает, крутится вокруг по элипсу. Что посоветуеш?(
|
Ответ: Плавное движение по точкам.
Умножай все ускорения на 0.9 это будет гасить колебания.
|
Ответ: Плавное движение по точкам.
Цитата:
|
Ответ: Плавное движение по точкам.
Скажите пжааалст, где же этот самый косяк (((
Код:
|
Ответ: Плавное движение по точкам.
Та не, раз у него по элипсу вокруг точки движется значит относительно правильно, а 0.9 имитирует силу трения, которая и должна сожрать вредную энергию. А если поставить больше единицы то объект будет раскачиваться вокруг положения своего центра гравитации все сильней :-) Если добавить более менее сложную зависимость изменения гравитации можно прикольных эффектов добиться, ну там для логотипа или заставки во время загрузки :-)
Попрбуй умножать только скорость на коэффциент этакого трения наоборот. Эт я с ускорением затупил просто. valz=0.99*valz+zcmp*lenght*speed valy=0.99*valy+ycmp*lenght*speed |
dsd, да честно признаться на некоторое время я на косяк забил и стал играться, менять свойства, прикольные колебания получаются.)))
dsd, млин, чот теперь плавно но прямолинейно, гравитация пропала, если отдельно на ускорение тоже делать коэфициент, меняет только скорость перемещения. |
Ответ: Плавное движение по точкам.
;Project : WayPointSystem
;Version : 0.01 ;Author : H@non © Код: |
Ответ: Плавное движение по точкам.
значит проверяй угол между векторами скорости объекта и цели и когда угол больше 100 градусов уменьшай скорость, а если вектора смотрят в одну сторону то не уменьшай. Этим ты добьешся сохранение гладкости и отсутствия колебаний, так как объект на обратном движении будет тормозить. скалярное произведение это косинус угла :-)
|
Ответ: Плавное движение по точкам.
dsd, лады, попробую повертеть, а пока пошуршу в коде ханона, который так любезно предоставил LLI.T.A.L.K.E.R., спасибо ему за содействие!)
LLI.T.A.L.K.E.R., слухай, чот намудрено в коде. У тебя исходного оригенала нет? Там типы пропущеные, массивы не объявленные. Поправил что увидел, но все равно не работает. А не все, скачал нормальный исходник, все работает. А у тебя код какой то подозрительный) |
Часовой пояс GMT +4, время: 03:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot