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

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

Discussion in 'Разработка плагинов для новичков' started by Fenix78563, Jan 10, 2017.

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Доброго времени суток, форумчане

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    по определению вектора - да.

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

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

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

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

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

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

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

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

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

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

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Логично же, что у игрока уже имеется Yaw и Pitch.
     
    Last edited: Jan 10, 2017
  9. Автор темы
    Fenix78563

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    ахха, я ору. кто то вообще с физикой не друган (оно и видно).

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

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

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
  13. Автор темы
    Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    сорсы то у меня есть.

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

    //послезавтра буду ковырять сорсы всего что связано с этой уипанской физикой.[DOUBLEPOST=1484081534,1484079237][/DOUBLEPOST]и вот возникла какаха. все это лежит уже не в сервере а в самом майнкрафте(или где то рядом). есть где то варианты получения сорсов? (ибо моджанг их естесно не дает)
     
  14. Ission

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

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

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

    alexandrage Администратор

    Trophy Points:
    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 Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    да это все здорово. что это за точки? это явно не координаты.
     
  18. Автор темы
    Fenix78563

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

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

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

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

    alexandrage Администратор

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    вектор это точка? ты запускаешь тело в точку?

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

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

Share This Page