Javascript:从X,Y坐标获取方向的公式
我正在制作一个实用程序来快速创建CSS阴影,并意识到这只能在IE中完成。但是,使用方向而不是(x,y)坐标:Javascript:从X,Y坐标获取方向的公式,javascript,css,geometry,trigonometry,shadow,Javascript,Css,Geometry,Trigonometry,Shadow,我正在制作一个实用程序来快速创建CSS阴影,并意识到这只能在IE中完成。但是,使用方向而不是(x,y)坐标: filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');" 如何从(x,y)坐标计算方向 编辑:使用给出的响应和来自的更多详细信息:我修改代码如下: function(x, y){ var d = Math.atan2(x, y) * (180 /
filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');"
如何从(x,y)坐标计算方向
编辑:使用给出的响应和来自的更多详细信息:我修改代码如下:
function(x, y){
var d = Math.atan2(x, y) * (180 / Math.PI);
if(d < 0){ d = 180 - d; }
return d;
}
函数(x,y){
var d=数学atan2(x,y)*(180/数学PI);
如果(d<0){d=180-d;}
返回d;
}
如果传入将分别用作X、Y的水平偏移和垂直偏移,将得到0到359之间的度数。方向以度数为单位 所以 如果你的计算器是以弧度计算的(就像任何一个理智的计算器一样),你可以用
radians = degrees / 180 * pi
其中pi=3.14159。。。或者数学
要走另一条路,请使用“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
+1:很好,你提到了atan2;这是正确的,因为只要至少有一个参数为非零(不同于直线atan),它就没有危险。
direction = Math.atan2(y, x) / Math.PI * 180