Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.

Помогите Направление вектора

Тема в разделе "Разработка плагинов для новичков", создана пользователем Fenix78563, 10 янв 2017.

  1. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Доброго времени суток, форумчане

    Необходимо получить направление вектора (я-ля yaw pitch), имея только вектор (никаких координат нет, иначе я бы тут не спрашивал)
     
  2. Mr Hosting
  3. Sonicxd2

    Sonicxd2 Активный участник Пользователь

    Баллы:
    76
    Разве в векторе есть такая информация?
     
  4. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    по определению вектора - да.

    так же player.setVelocity(p.getLocation().getDirection) с точностью до пикселя определяет куда игроку двигаться

    так что да, есть
     
  5. Sonicxd2

    Sonicxd2 Активный участник Пользователь

    Баллы:
    76
    Это больше геометрия, из двух точек выводят Yaw и Pitch. Так что тут надо самому считать)
     
  6. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    здорово, если первую точку я еще могу получить (getX() и т.д.) то где взять вторую. расчитать то без проблем можно
     
  7. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Мда, действительно, можно же создать локацию по этим координатам. (есть одно "но", Yaw, Pitch - нулег) следовательно и Direction - тоже нулек(его вообще нет).

    однако в методе p.setVelocity - машина точно знает куда двигать игрока.

    при попытке получить x y z до и после multiply получается получить (сори за тафтологию, лень синонимы искать) какие то числа, но они какие то не обычные(не больше единицы, т.е. точно не координаты). что в принципе возвращают методы getX\Y\Z(). (по мимо того что добл переменную) что это за числа вообще такие? сорцы, доки, что-то вразумительное есть на эту тему?
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Skype:
    alexandr0116
    Логично же, что у игрока уже имеется Yaw и Pitch.
     
    Последнее редактирование: 10 янв 2017
  9. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    т.е. по твоему у вектора их нет? (вектор без направления? это тогда что такое вообще? что такое вектор в ведре\майнкрафте в целом. есть инфа про это? )
     
  10. Sonicxd2

    Sonicxd2 Активный участник Пользователь

    Баллы:
    76
    X Y Z - Vector. X Y Z Yaw Pitch World - Location.
     
  11. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    ахха, я ору. кто то вообще с физикой не друган (оно и видно).

    В оригинальной физике - локация была бы а-ля мир, координаты. А вот вектор - уже координаты начала, направление, длина.

    Пожалуй это сейчас самое актуальное
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Skype:
    alexandr0116
  13. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    сорсы то у меня есть.

    там нет нифига откуда оно вытаскивает эти не понятные числа которые колеблются от -1 до +1

    //послезавтра буду ковырять сорсы всего что связано с этой уипанской физикой.
    --- Сообщения объединены: 10 янв 2017, предыдущее сообщение: 10 янв 2017 ---
    и вот возникла какаха. все это лежит уже не в сервере а в самом майнкрафте(или где то рядом). есть где то варианты получения сорсов? (ибо моджанг их естесно не дает)
     
  14. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    yaw: Math.toDegrees((Math.atan2(-vector.getX(), vector.getZ()) + Math.PI*2) % Math.PI*2);
    pitch: Math.toDegrees(Math.atan(-vector.getY() / Math.sqrt(vector.getX()*vector.getX() + vector.getZ()*vector.getZ())));
    А вообще учите матчасть. Это всё ничем не отличается от yaw и pitch, которые используют при создании трёхмерных приложений.
     
  15. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    конечно здорово дать мне вот эти формулы, и сказать мол "учите мат часть". (гугление про atan2 вывело на полярную систему координат. только я блин школьник. нас такому не учат. я вообще не знал что такое существует)

    с матчастью у меня все в порядке, я вполне себе запускаю тела по имеющимся yaw и pitch.

    проблема в том, что я не знаю ЧТО выдают методы getX\Y\Z.

    Что это за числа? Вы можете это сказать? формулы я в состоянии состоянии составить сам.

    Может быть это проекции вектора на соответсвующие координаты? или что это вообще такое?
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Skype:
    alexandr0116
    В классе Vector они выводят x y z, логично же, не?
    Vector vec = new Vector(0,1,2);
    vec.getX() == 0.0
    vec.getY() == 1.0
    vec.getZ() == 2.0
     
  17. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    да это все здорово. что это за точки? это явно не координаты.
     
  18. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    мне не нужен запуск энтити. мне нужно понять за что отвечают эти три числа которые задают вектор.
    ЧТО ТАКОЕ X Y Z для вектора в манкрафте.
    запуск энтити, повторюсь, мне не нужен
     
  19. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    противоречишь сам себе. точка не вектор как бы ты не ухищрался
     
  20. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Skype:
    alexandr0116
    Ну не я же так назвал класс, как называется так и говорю.
     
  21. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    вектор это точка? ты запускаешь тело в точку?

    pl.setVelocity(new Vector(pl.getVelocity().getX(), pl.getVelocity().getY()+1, pl.getVelocity().getZ()));
    запустил меня на 6 блоков вверх

    интересно как тогда работает магия от Ission ? ибо если вектор это точка то я уже нифига не понял
     

Поделиться этой страницей