Je faisais un utilitaire pour créer rapidement des ombres portées de CSS, et s'est rendu compte que ceci peut seulement être fait dans IE avec IE filters. Cependant, la Direction utilise Shadow Filter au lieu de (x, y) les coordonnées:Javascript: Formule pour obtenir la direction de X, Y coordonne
filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');"
Comment peut être calculée à partir Direction (x, y) les coordonnées?
Edit: En utilisant les réponses données et plus de détails à partir this link: Je modifié mon code comme suit:
function(x, y){
var d = Math.atan2(x, y) * (180/Math.PI);
if(d < 0){ d = 180 - d; }
return d;
}
Si vous passez Déport horizontal et Déport vertical que vous utiliserez comme X, Y, respectivement , vous obtiendrez un degré de 0 à 359.
+1: Bien que vous avez mentionné atan2; c'est la bonne chose car elle est sans danger tant qu'au moins l'un des arguments est non nul (contrairement à l'atan). –
Merci. Bonne explication. –