9

要素の回転角度を設定する次のコードがあります。

$('#1-link-2')
                .css('height', length)
                .css('-webkit-transform', 'rotate(' + angle + 'deg)')
                .css('-moz-transform', 'rotate(' + angle + 'deg)')
                .css('-o-transform', 'rotate(' + angle + 'deg)')
                .css('-ms-transform', 'rotate(' + angle + 'deg)')
                .css('transform', 'rotate(' + angle + 'deg)');

角度は以前に動的に計算されます (マウスの位置に基づいています)。

角度を取得できる必要があります。手始めにこれを試しました:

var angle= $("#1-link-2").css('-webkit-transform');
    $('#node-title').html(angle);   //just to print it to the screen for me

そして、それは私にこのテキストを与えました

matrix(0.5425908601788315, -0.839997118120292, 0.839997118120292, 0.5425908601788315, 0, 0)

角度を度単位で取得するにはどうすればよいですか?

4

3 に答える 3

1

最初の値は回転角度の余弦で、2 番目の値は回転角度の正弦です。ただし、その要素にこれ以上変換が蓄積されていない場合に限ります。お気に入りの数学ライブラリを使用して、逆サインとコサインを計算します。

.54 の逆余弦は 54ish または 306 度です。-0.83 の逆正弦は 234ish または 306 度です。

ねえ、正解は 306 度に違いない。

ジオメトリを忘れた場合は、ここで復習してください。

于 2012-11-28T00:40:34.550 に答える
-1
function getRotationDegrees(obj) {
  var matrix = obj.css("-webkit-transform") ||
  obj.css("-moz-transform")    ||
  obj.css("-ms-transform")     ||
  obj.css("-o-transform")      ||
  obj.css("transform");
  if(matrix !== 'none') {
    var values = matrix.split('(')[1].split(')')[0].split(',');
    var a = values[0];
    var b = values[1];
    var angle = Math.round(Math.atan2(b, a) * (180/Math.PI));
  } else { var angle = 0; }
  return (angle < 0) ? angle +=360 : angle;
}

angle1 = getRotationDegrees($('#1-link-2'));
于 2014-07-17T12:28:16.940 に答える