0

これがコードです。回転角度を取得しようとしています。ダイヤルの周りで画像を回転させています。270度に達するとファンキーなことをする以外は、すべての角度を正しく取得しています. 角度がマイナスに変わります。0 から 270 までは問題なく動作しますが、270 から 360 までの角度を表示することはできません。

    this.rotate = function(x){
    this.node.style.MozTransform="rotate("+x+"deg)";
    this.node.style.WebkitTransform="rotate("+x+"deg)";
    this.node.style.OTransform="rotate("+x+"deg)";
    this.node.style.msTransform="rotate("+x+"deg)";
    this.node.style.Transform="rotate("+x+"deg)";

myintID = setInterval(function(){
    //Math!
    angleFromEye = Math.atan2((cursorLocation.y-self.my_y), cursorLocation.x-  self.my_x)*(180/Math.PI)+ 90;
    //Rotate
    self.rotate(angleFromEye);
4

3 に答える 3

0

実際には、値 -90 から 0 の角度も負ですが、角度に 90 を追加するので、それはわかりません。

角度が負の場合は、単純に角度に 360 を追加します。

if (angleFromEye < 0) angleFromEye += 360;
于 2012-08-13T13:47:09.363 に答える
0

あなたの問題は、戻り値の範囲からatan2目的の範囲への変換にあると思います。

atan2range のラジアンで角度を与えます。range[-pi,pi]の度で角度が必要です[0,360]

変換すると、範囲内の度数で角度が得られます[-180+90,180+90] = [-90,270]

atan2(...)*(180/Math.PI) + 90

代わりにこれを試してください:

atan2(...)*(180/Math.PI) + 180
于 2012-08-13T13:50:42.810 に答える
0

最近、要素の回転を取得したり、要素を回転したりできる jQuery プラグインを作成しました。ie7 と ie8 でも動作します。ここ: http://wp-dreams.com/jquery-element-rotation-plugin/

于 2012-10-16T20:34:41.413 に答える