如何在JS中将笛卡尔坐标转换为极坐标?

问题描述 投票:5回答:1

我需要从笛卡尔坐标中使用X和Y来了解极坐标中的旋转角度。

没有大量IF语句,如何在JS中完成?我知道我可以使用this system

但是我认为这会降低性能,因为它处于动画周期。

javascript math polar-coordinates cartesian-coordinates
1个回答
8
投票

Javascript带有一个内置函数,可以执行图像中表示的内容:Math.atan2()

[Math.atan2()y, x作为参数并返回以弧度为单位的角度。

例如:

x = 3
y = 4    
Math.atan2(y, x) //Notice that y is first!

//returns 0.92729521... radians, which is 53.1301... 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)
© www.soinside.com 2019 - 2024. All rights reserved.