2017-09-16 6 views
0

Vous avez une question simple. J'ai une application où les logos de plaines volent au hasard à travers. (Ils obtiennent une nouvelle position aléatoire de marge gauche et de marge supérieure à chaque X seconde). Le prochain défi pour les faire tourner, afin que la tête des avions se tienne dans l'angle où ils volent.Calcul de l'angle après une marge aléatoire-left et margin-top

N'a pas vraiment trouvé une solution comment faire cela. Ce que nous savons que:

margin-left

margin-top

Mais ces valeurs en constante évolution que les avions volant au hasard. Des idées ou des suggestions?

UPDATE (pour être plus évident) est ici morceau de code:

var nh = Math.floor(Math.random() * $(window).height() - 50); 
    var nw = Math.floor(Math.random() * $(window).width() - 50); 
    $('#plane').animate({ top: nh, left: nw}, 10000, function(){}); 
    $('#plane').css({"transform" : "rotate(" + Math.atan2(nh,nw)/Math.PI*180 +"deg)"}); 
+0

Cette question ne sait pas - s'il vous plaît poster code ou fourni un exemple minimal de ce que vous essayez d'accomplir. – skyline3000

+0

var nh = Math.floor (Math.random() * $ (fenêtre) .height() - 50); var nw = Math.floor (Math.random() * $ (fenêtre) .width() - 50); $ ('# plan'). Animate ({top: nh, left: nw}) – Koppany

+0

désolé si ce n'était pas si évident. nouvelle hauteur et nouvelle largeur calculée toutes les 10 secondes. – Koppany

Répondre

1

Il est pas très clair ce que vous essayez d'atteindre.

Afin de calculer l'angle en fonction des marges, vous pouvez utiliser Math.atan2()

function getAngle(x1,y1,x2,y2){ 
    return Math.atan2(y2-y1,x2-x1)/Math.PI*180 
} 
var angle = getAngle(MARGIN-LEFT, MARGIN-TOP); 
console.log('the angle is',angle,'degrees')