lev*_*tov 5 javascript math polar-coordinates cartesian-coordinates
我需要使用笛卡尔坐标中的X和Y来知道极坐标中的旋转角度.
如何在没有大量IF语句的情况下在JS中执行此操作?我知道我可以使用它,
但我认为这对性能有害,因为它处于动画循环中.
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
Run Code Online (Sandbox Code Playgroud)
我写了这个函数,从笛卡尔坐标转换为极坐标,返回距离和角度(以弧度表示):
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
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样使用它来获得弧度的角度:
cartesian2Polar(5,5).radians
Run Code Online (Sandbox Code Playgroud)
最后,如果你需要度数,你可以将弧度转换为这样的度数
degrees = radians * (180/Math.PI)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4062 次 |
最近记录: |