Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2017, 10:56
Интересующийся
Отправить личное сообщение для Artur2016 Посмотреть профиль Найти все сообщения от Artur2016
 
Регистрация: 31.08.2016
Сообщений: 15

Вычисление радиан из 2 точек
Вобщем есть 2 точки нужно узнать радианы на сколько нужно повернуть зеленую точку что бы луч указывал на красную. Меня уже долго мучает этот воппрос помогите сам не справлюсь.

Последний раз редактировалось Artur2016, 15.02.2017 в 11:01.
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2017, 11:05
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

арктангенс.

Последний раз редактировалось Alexandroppolus, 15.02.2017 в 11:10.
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2017, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Artur2016,
rotateImg поворот изображения в сторону курсора
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2017, 13:44
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

<html>
<script src='http://code.jquery.com/jquery-latest.min.js'></script>
<script>
function angleOf(x,y) { // Calculate angle of vector
    var a = [0,0,-2,-1,0,2,-3,4,2][(x < 0 ? 2 : x ? 1 : 0) + (y < 0 ? 6 : y ? 3 : 0)];
    return a < 0 ? -a * Math.PI / 2 : a * Math.PI / 2 + (x ? Math.atan(y / x) : Math.PI / 2);
}
function calculationeur(e) {
    document.getElementById("angle").innerHTML = Math.angleOf(e.clientY, e.clientX)
}
function maineur() {
    $("#paper").mousemove(function(event) {
        var x = event.pageX, y = event.pageY;
        var cx = 64, cy = 64;
        var msg = "Angle of (" + x + "," + y + ") about (" + cx + "," + cy + ") is " + ((36000 - Math.floor(angleOf(x - cx, y - cy) / Math.PI * 18000.0)) / 100);
        $("#angle").text(msg);
    });
}
</script>
<body onload='maineur()'>
<img id=paper style=background-color:cyan height=128px width=128px></img>
<span id=angle>???</span>°
</body>

Последний раз редактировалось Paguo-86PK, 15.02.2017 в 13:53.
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2017, 14:03
Интересующийся
Отправить личное сообщение для Artur2016 Посмотреть профиль Найти все сообщения от Artur2016
 
Регистрация: 31.08.2016
Сообщений: 15

спасиб
а без библеотек на чистом js можно?

Последний раз редактировалось Artur2016, 15.02.2017 в 14:07.
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2017, 14:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Artur2016,

Math.atan2(y1-y2, x1-x2);
Ответить с цитированием
  #7 (permalink)  
Старый 15.02.2017, 14:20
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

Сообщение от рони Посмотреть сообщение
Artur2016,

Math.atan2(y1-y2, x1-x2);
Спасибо, у мeня, просто, вариант из "Основ интерактивной машинной графики" - книги 80-х с примерами на Бейсике.
Сообщение от Artur2016 Посмотреть сообщение
спасиб
а без библеотек на чистом js можно?
Тaк это и есть чистый js.
Здесь jQuery используется лишь под движение мыши. А сам угол вычисляется здесь:
function angleOf(x,y) { // Calculate angle of vector
    var a = [0,0,-2,-1,0,2,-3,4,2][(x < 0 ? 2 : x ? 1 : 0) + (y < 0 ? 6 : y ? 3 : 0)];
    return a < 0 ? -a * Math.PI / 2 : a * Math.PI / 2 + (x ? Math.atan(y / x) : Math.PI / 2);
}
Например, в вашем случае x1=100,y1=50 и x2=200,y2=25.
Тогда:
function angleOf(x,y) { // Calculate angle of vector
    var a = [0,0,-2,-1,0,2,-3,4,2][(x < 0 ? 2 : x ? 1 : 0) + (y < 0 ? 6 : y ? 3 : 0)];
    return a < 0 ? -a * Math.PI / 2 : a * Math.PI / 2 + (x ? Math.atan(y / x) : Math.PI / 2);
}
alert(angleOf( (200 - 100) , (25 - 50) ));

Последний раз редактировалось Paguo-86PK, 15.02.2017 в 14:24.
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2017, 14:48
Интересующийся
Отправить личное сообщение для Artur2016 Посмотреть профиль Найти все сообщения от Artur2016
 
Регистрация: 31.08.2016
Сообщений: 15

все спасиб я разобрался
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление без ввода данных Remca Общие вопросы Javascript 0 04.05.2016 17:06
Вычисление выражения MixFix Общие вопросы Javascript 2 15.11.2015 22:02
Результат дистанции двух точек черех google map чтобы выводился на отдельную страницу fastabst Элементы интерфейса 2 01.12.2014 17:43
Отображение всех значений точек для jquery flot Mutagena jQuery 0 29.04.2011 13:42
Вычисление в строку lammeR Общие вопросы Javascript 4 06.06.2010 19:17