Javascript:从X,Y坐标获取方向的公式

时间:2010-10-19 10:06:31

标签: javascript css geometry trigonometry shadow

我正在制作一个实用程序来快速创建CSS投影,并意识到这只能在IE filters的IE中完成。但是,Shadow Filter使用Direction而不是(x,y)坐标:

filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');"

如何从(x,y)坐标计算方向?

修改:使用给出的回复和this link的更多详情:我修改了我的代码,如下所示:

function(x, y){
    var d = Math.atan2(x, y) * (180 / Math.PI);
    if(d < 0){ d = 180 - d; }
    return d;
}

如果你传递的水平偏移和垂直偏移分别用作X,Y,你将获得0到359的学位。

1 个答案:

答案 0 :(得分:10)

方向是度数。

所以

x = cos(direction)
y = sin(direction)

如果你的计算器以弧度工作(正如任何理智的计算器那样),你可以用

将度数转换为弧度
radians = degrees / 180 * pi

其中pi = 3.14159 ...或Math.PI

另一方面,请使用'atan'

radians = Math.atan(y / x)

在Javascript中,您有一个Math.atan2函数,它将y和x作为参数。

radians = Math.atan2(y, x)

弧度到度是:

degrees = radians / pi * 180

所以结果是:

direction = Math.atan2(y,  x) / Math.PI * 180