Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как определить координаты направления движения (https://javascript.ru/forum/misc/33304-kak-opredelit-koordinaty-napravleniya-dvizheniya.html)

Tek 18.11.2012 16:23

Как определить координаты направления движения
 
задача следующая нужно имея имеются кнопки назад вперед, влево, вправо, последние 2 вращают объект, как двигать объект всегда вперед - относительно того куда объект направлен в данный момент, имея угол поворота объекта?

Severtain 18.11.2012 18:49

Эм.. сделать скорость ускорение по осям и каждую долю задержки изменять начальные координаты в зависимости от скорости ? :)
Я просто не совсем понял ваш вопрос? Вы не можете куб переместить ? Или вращать его до нужно вам значения 7!

Tek 18.11.2012 21:23

нужно каждый шаг, получать координаты x2 y1 имея x2 y2 и угол поворота

dmitriymar 18.11.2012 21:44

Цитата:

Сообщение от Tek
нужно каждый шаг, получать координаты x2 y1 имея x2 y2 и угол поворота

ну дак, а математика ,школьный курс, для чего?

Tek 18.11.2012 21:46

дык было давно, уже даже сформулировать не могу нормально)

dmitriymar 18.11.2012 21:50

Цитата:

Сообщение от Tek
дык было давно, уже даже сформулировать не могу нормально)

начерти прямоугольный треугольник и всё вспомнится,если оно было.
Если не вспомниться, или не было, то нех тебе вообще к компьютеру подходить ,кроме как почту посмотреть, да в одноклассниках посидеть.

melky 18.11.2012 23:29

Цитата:

Сообщение от Tek (Сообщение 216582)
дык было давно, уже даже сформулировать не могу нормально)

выдержка из моего скрипта :

{
            zeroPoint: {x: 0, y: 0},
            interpolateCoords: function (directionRad, moveDelta, moveProgress, fromPoint) {
                var x = GameObject.interpolateX(directionRad, moveDelta.x, moveProgress, fromPoint.x);
                var y = GameObject.interpolateY(directionRad, moveDelta.y, moveProgress, fromPoint.y);
                return { x: x, y: y };
            },
            interpolateX: function (directionRad, delta, progr, from) {
                return Math.cos(directionRad) * delta * progr + from;
            },
            interpolateY: function (directionRad, delta, progr, from) {
                return Math.sin(directionRad) * delta * progr + from;
            }
        }

melky 19.11.2012 18:50

Цитата:

Сообщение от iMaxmaxmaximus
применить перемещение? О_О

что это значит:? подорожник приложить?)

nerv_ 19.11.2012 21:59

Цитата:

Сообщение от melky
что это значит:? подорожник приложить?)

мать-и-мачеху ;)

9xakep 19.11.2012 22:30

достаточно вспомнить, что cos это координата радиус точки в прямоугольном треугольнике, лежащая на окружности, то есть если тело движется под углом 60градусов, то при радиус векторе(гипотенузе, прощеговоря)(ее вы сами выбираете) допустим 10, след координата точки будет 10 * cos(60) = 5. Аналогично с sin, только синус это координата по y


Часовой пояс GMT +3, время: 14:42.