Javascript поставляется с встроенной функцией, которая делает то, что представлено на изображении: Math.atan2()
Math.atan2()
принимает y, x
в качестве аргументов и возвращает угол в радианах.
Например:
x = 3
y = 4
Math.atan2(y, x) //Notice that y is first!
//returns 0.785398... radians, which is 45 degrees
Я написал эту функцию для преобразования декартовых координат к полярным координатам, возвращая расстояние и угол (в радианах):
function cartesian2Polar(x, y){
distance = Math.sqrt(x*x + y*y)
radians = Math.atan2(y,x) //This takes y first
polarCoor = { distance:distance, radians:radians }
return polarCoor
}
Вы можете использовать его как это для получения угла в радианах:
cartesian2Polar(5,5).radians
Наконец, если вам нужны степени, вы можете конвертируйте радианы в такие градусы
degrees = radians * (180/Math.PI)
Это будет достаточно справедливое усилие для любого, кто может провести мозговой штурм, пока у вас не появится что-то, что бы показалось, если у вас что-то началось. Итак, при запуске просто возьмите бумагу и вспомните все, что вам нужно, и создайте псевдокод/алгоритм без какой-либо логики программирования, а затем попытайтесь сформировать его в JS-код. Сначала это может быть грязно, но улучшения могут быть сделаны позже. Если возможно, вы можете сбросить соответствующий раздел кода, чтобы получить гораздо лучший ответ. :) – Rohit416
@ Rohit416 Если бы я мог это сделать. Я сказал, что знаю, как это сделать, только используя конструкции. Я думаю, это очевидно, и я не пишу здесь этот алгоритм. Я прошу любые другие идеи, как решить эту проблему, возможно, математическую библиотеку в JS или что-то в этом роде. – levshkatov
Да, объект 'Math' и его методы определенно помогут. [Вы смотрите на это] (http://stackoverflow.com/questions/8898720/cartesian-to-polar-coordinates)? – Rohit416