2012-07-04 158 views
1

有沒有人在javascript中旋轉後有x/y位置的翻譯功能?javascript旋轉翻譯功能

例如:

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

給我的鼠標位置但是我父母的div是由這當然意味着mousex /像老鼠的x度旋轉,是不正確的。 JavaScript有這個內置的功能(不是我見過一個,但..)?

非常感謝

+0

好吧,它有'Math.sin()','Math.cos()'和'Math.tan()'來幫助你,但數學必須由你來完成。 – Matt

+0

該死的,不得不去刷牙我的學校trig ..希望js現在可能已經添加了一個簡單的點語翻譯 – Alex

回答

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; 
} 

應該工作,看到Rotation Matrix in Wikipedia

當然,角度應在弧度。您可以將度數轉換爲弧度,乘以Math.PI併除以180.如果要順時針旋轉角度或將sin更改爲-sin,則該角度逆時針旋轉。

1

假設你的div是由t弧度順時針旋轉。然後,變換後的座標是:

X '= COS(T)* X - SIN(t)的* Y

Y'= SIN(t)的* X + cos(T)* Y