Javascript.RU

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

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

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

арктангенс.

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

Artur2016,
rotateImg поворот изображения в сторону курсора
 
Старый 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.
 
Старый 15.02.2017, 14:03
Интересующийся
Отправить личное сообщение для Artur2016 Посмотреть профиль Найти все сообщения от Artur2016
 
Регистрация: 31.08.2016
Сообщений: 15

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

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

Artur2016,

Math.atan2(y1-y2, x1-x2);
 
Старый 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.
 
Старый 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


© Илья Кантор, 2007-2021 О проекте - Архив форума - Вверх