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

Помогите Между двумя location

Discussion in 'Разработка плагинов для новичков' started by serega6531, Feb 2, 2014.

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

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

    Trophy Points:
    173
    Skype:
    shkurovs
    Нет ли готовой удобной функции, чтобы узнать, находится ли локация между двумя другими локациями?
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    serega6531

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

    Trophy Points:
    173
    Skype:
    shkurovs
    Я сделал такую:

    Code:
        public static boolean isBeetwen2Locations(Location t, Location f, Location s){
            double fx = f.getX();
            double fy = f.getY();
            double fz = f.getZ();
            double sx = s.getX();
            double sy = s.getY();
            double sz = s.getZ();
            double tx = t.getX();
            double ty = t.getY();
            double tz = t.getZ();
            return ((fx < tx && tx < sx && fy < ty && ty < sy && fz < tz && tz < sz) ||
     (fx > tx && tx > sx && fy > ty && ty > sy && fz > tz && tz > sz));
        }
    Но нет ли официальной?
     
  4. Автор темы
    serega6531

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

    Trophy Points:
    173
    Skype:
    shkurovs
    Жаль. Мое будет работать?
     
  5. ptnk

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

    Trophy Points:
    173
    Почему бы не начать своё знакомство с базовыми алгоритмами? У кого-то этого явно не достаёт.

    Оно будет работать, но не всегда правильно, потому, что некоторые вариации расположения точек не были учтены. Нарисуй на бумаге все варианты расположения двух точек в трёхмерном пространстве и сформулируй своё итоговое условие.
     
    Bars likes this.
  6. Автор темы
    serega6531

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

    Trophy Points:
    173
    Skype:
    shkurovs
    Code:
            return (((fx < tx && tx < sx) || (fx > tx && tx > sx)) &&
                    ((fy < ty && ty < sy) || (fy > ty && ty > sy)) &&
                    ((fz < tz && tz < sz) || (fz > tz && tz > sz)));
    А так?[DOUBLEPOST=1391433368,1391421859][/DOUBLEPOST]@ptnk Правильно?
     
  7. Shevchik

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

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    У vector есть такой метод как isInAABB.
     
  8. ptnk

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

    Trophy Points:
    173
    Да здесь похоже метод , который ищет принадлежность области, ограниченной для двух точек.
    А твой метод, возможно проверяет на принадлежность прямой.

    И что это ? О_о.

    Нарисуй на листочке и рассматривай эти точки. Я подразумеваю, что точка должна лежать между двумя точками - трёхмерную область, своеобразный регион привата, т.е. 3D область, и в таком случае для двух точек я насчитывают 4 различных случая: одна точка ниже или выше другой, одна точка правее или левее другой - скомбинируй эти возможности и получи набор.
     
  9. Shevchik

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

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    isInAABB проверяет на принадлежность точки кубоиду ограниченному двумя точками.
     
  10. ptnk

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

    Trophy Points:
    173
    Ну вот, ты тем самым зарубил развитие логики данного человека, а ему бы создание своего велосипеда не помешало бы.
     
  11. Shevchik

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

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    Ему всё равно придётся научиться различать какая точка минимальная а какая максимальная иначе проверка не заработает.
     

Share This Page