Ответы пользователя по тегу Математика
  • Как перемещать объект в 3Д пространстве?

    linoleum
    @linoleum
    Смотрите.. в случае 2D вы используете cos для x и sin для y. Это правильно, но из-за этого у вас и путаница, потому что более строго это выглядит так:
    x+=Math.cos(angleX)*speed;
    y+=Math.cos(angleY)*speed; // да, тут тоже косинус, но угол другой

    потому что мы не можем 'перемещать на угол', мы можем только перемещать вдоль вектора.
    В случае 2D - это вектор {cos(angleX), cos(angleY)}.
    В случае 3D - {cos(angleX), cos(angleY), cos(angleZ)},
    где angle* - угол с соответствующей осью.
    Почитайте про направляющие косинусы.

    То есть, если отвечать на ваш вопрос 'как сюда приписать третью координату и третью ось', то найдите угол с осью Z и добавьте
    z+=Math.cos(angleZ)*speed;

    UPD Сейчас внимательнее посмотрел ваш код - у вас объявлена переменная angle2 - может быть это она и есть (угол с осью Z)? :) Тогда будет просто
    z += Math.cos(angle2) * speed;
    Ответ написан