Вычисление радиан из 2 точек
Вобщем есть 2 точки нужно узнать радианы на сколько нужно повернуть зеленую точку что бы луч указывал на красную. Меня уже долго мучает этот воппрос помогите сам не справлюсь.
![]() |
арктангенс.
|
|
<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> |
спасиб
а без библеотек на чистом js можно? |
Artur2016,
:cray: Math.atan2(y1-y2, x1-x2); |
Цитата:
Цитата:
Здесь 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) )); |
все спасиб я разобрался:):)
|
Часовой пояс GMT +3, время: 05:06. |