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

Помогите Угол между направлением взгляда и направлением на координаты

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

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

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    На данный момент делаю так:
    Код:
            Vector viewDirection = player.getLocation().getDirection();
            Vector locDirection = player.getLocation().toVector().subtract(location.toVector());
            double angle = Math.abs(Math.toDegrees(Math.atan(viewDirection.getX() / viewDirection.getZ())) -
                    Math.toDegrees(Math.atan(locDirection.getX() / locDirection.getZ())));
            if (angle > 180.0D)
            {
                angle = 360.0D - angle;
            }
    
    Работает неплохо, но:
    Angle.png
    Т.е. с "зеленой" стороны все вычисляется как надо, а с "черной" - нет.
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Посмотри метод angle у Vector
     
  4. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Он считает угол в пространстве, а мне нужно только по двум осям.[DOUBLEPOST=1454071728,1454007151][/DOUBLEPOST]
    Спасибо за идею, сделал так:
    Код:
    Vector viewDirection = player.getLocation().getDirection();
            Vector locDirection = player.getLocation().toVector().subtract(location.toVector());      
          
            viewDirection.setY(0);
            locDirection.setY(0);
            double angle = 180.0D - Math.toDegrees(viewDirection.angle(locDirection));
    
     

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