3

私は CSS ドロップ シャドウをすばやく作成するためのユーティリティを作成していましたが、これはIE フィルターを使用した 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 / Math.PI);
    if(d < 0){ d = 180 - d; }
    return d;
}

X、Y としてそれぞれ使用する Horizo​​ntal Offset と Vertical Offset を渡すと、0 から 359 までの角度が得られます。

4

1 に答える 1

11

方向は度単位です。

それで

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

電卓がラジアンで動作する場合(他の正気の電卓と同じように)、度をラジアンに変換できます。

radians = degrees / 180 * pi

ここで、pi =3.14159...またはMath.PI

逆にするには、「atan」を使用します

radians = Math.atan(y / x)

Javascriptには、Math.atan2yとxをパラメーターとして受け取る関数があります。

radians = Math.atan2(y, x)

ラジアンから度までは次のとおりです。

degrees = radians / pi * 180

したがって、結果は次のようになります。

direction = Math.atan2(y,  x) / Math.PI * 180
于 2010-10-19T10:12:48.630 に答える