1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов 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. Den_Abr

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

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

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Он считает угол в пространстве, а мне нужно только по двум осям.
    Спасибо за идею, сделал так:
    Код:
    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));
    
     

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