我正在制作一个实用程序来快速创建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的学位。
答案 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