Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2016, 21:53
Интересующийся
Отправить личное сообщение для ryslan-yc Посмотреть профиль Найти все сообщения от ryslan-yc
 
Регистрация: 18.12.2016
Сообщений: 23

Геометрическая функция, азимут по координаторам
Здравствуйте.
Вот написал функцию и тестирую
this.turn = function(obj1,obj2){
        var x = obj2.X() - obj1.X(),y = obj2.Y() - obj1.Y();
        var x_bool = (x > 0)?true:false,y_bool = (y > 0)?true:false;//больше нуля?
        x = x_bool?x:-x;y = y_bool?y:-y;

        var incline = (90/100)*(x/((x+y)/100));//это вычисление, важно только это
        return incline;
    };


Функция принимает в качестве 1 аргумента объект, нужно найти наклон от объекта 1 к объекту 2 (второй аргумент), точнее нужно узнать как нужно повернуться чтобы объект 1 "смотрел" на объект 2, и вернуть наклон.
Моя функция имеет погрешность которая небольшая и плавает в зависимости от наклона и аргументов XY, что есть недопустимо в геометрической задаче .
У объектов которые будут переданы в качестве аргументов имеют гетеры obj.X() obj.Y() которые возвращают положение по X,Y соответственно.
Мой метод по идее на этот момент работает только с +x,+y,чтобы организовать и работу и с -x,-y методу нужно будет просто их менять на +x,+y запоминать какая ось будет "-"(минусовая) и потом поправлять ответ, например если
-x,+y то incline -90
+x,-y incline +90
-x,-y incline -180
Есть одно но, наклон у меня не по геометрическим правилам а по моим
У меня 0:верх 90:вправо -90:влево +-180:вниз
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2016, 21:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ryslan-yc,
Соединить прямой линией два элемента на javascript или Jquery
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2016, 22:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от ryslan-yc
чтобы объект 1 "смотрел" на объект 2
поворот изображения в сторону курсора
Ответить с цитированием
  #4 (permalink)  
Старый 24.12.2016, 09:06
Интересующийся
Отправить личное сообщение для ryslan-yc Посмотреть профиль Найти все сообщения от ryslan-yc
 
Регистрация: 18.12.2016
Сообщений: 23

Не помогло, пожалуйста дайте мне формулу
Перешел по силке и нечего там не понял не могли бы дать мне формулу, я ее там не увидел,
Ответить с цитированием
  #5 (permalink)  
Старый 24.12.2016, 10:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ryslan-yc,
Malleys он лучше понимает вашу тригонометрию ...
Ответить с цитированием
  #6 (permalink)  
Старый 24.12.2016, 18:40
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

this.turn = function(obj1, obj2){
    var dx = obj2.X() - obj1.X(), dy = obj2.Y() - obj1.Y();
    var p = Math.abs(dx) / dx; isNaN(p) && (p = 1);

    return 180 * p * Math.acos(dy / Math.sqrt(dx * dx + dy * dy)) / Math.PI;
};


У вас, как я понял один вектор всегда {0; 1}, а второй имеет начало в obj1, а конец в obj2. Значит задача сводится к поиску угла между двумя этими векторами. (И ещё поправка в какую сторону от {0; 1} находится второй вектор)
Ответить с цитированием
  #7 (permalink)  
Старый 24.12.2016, 18:47
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от ryslan-yc Посмотреть сообщение
Есть одно но, наклон у меня не по геометрическим правилам а по моим
По геодезическим... это азимут. Эта зараза мерила азимуты не от 0 до 360, как все нормальные люди, а от -180 до +180!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
js рекурсивная функция с for.. in циклом frying Общие вопросы Javascript 6 25.08.2014 10:50
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 17:41
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 14:01
функция и несуществующий id Ankh Элементы интерфейса 4 10.02.2012 23:49
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00