2

javascriptで回転した後のx/y位置の変換機能を持っている人はいますか?

例えば:

this.mousex = event.clientX - this.el.offsetLeft;
this.mousey = event.clientY - this.el.offsetTop;

マウスの位置を教えてくれますが、親のdivはx度回転しています。これは、もちろん、mousex/mouseyが正しくないことを意味します。javascriptにはこの組み込み関数がありますか(私が見たことはありませんが..)?

どうもありがとう

4

2 に答える 2

1

divがt時計回りにラジアン回転するとします。次に、変換された座標は次のとおりです。

x'= cos(t)* x-sin(t)* y

y'= sin(t)* x + cos(t)* y

于 2012-07-04T20:34:45.410 に答える
1

私はあなたのために次のように書いたばかりです、私はそれをチェックしました(1,0,Math.PI/2)(0,1,Math.PI/2)そしてそれは動作します。

function rotatePoints(x,y,angle){
   var point={};
   point.x = x*Math.cos(angle)- y*Math.sin(angle);
   point.y = x*Math.sin(angle) + y*Math.cos(angle);
   return point;
}

動作するはずです。ウィキペディアの回転行列を参照してください。

もちろん、角度はラジアンである必要があります。度をラジアンに変換するにMath.PIは、180を掛けて割ります。時計回りに回転させたい場合は、-angleを通過するか、sinを-sinに変更すると、角度が反時計回りになります。

于 2012-07-04T20:38:32.163 に答える