2013-05-30 70 views
1

我想單擊並拖動矩形的一角,並有圍繞其中心的矩形旋轉。圍繞其中心旋轉一個矩形?

這是很容易用正方形做:

rot = PI * 3/4 + atan2((centerY - mouseY), (centerX - mouseX)); 

但是,如果我想旋轉一個矩形,我不知道如何處理的失調,使轉動平穩的鼠標移動。

在這個例子的jsfiddle,http://jsfiddle.net/R4QpV/,點擊紅色角落能讓您在廣場的中心旋轉。但是,如果你點擊綠色的角落,就會發生跳躍。如何拖動綠色的角落平滑,並按照鼠標點擊廣場的角落?

+1

嘗試http://jsfiddle.net/R4QpV/8/,其中'的mouseDragged()'已被修改。注意:在這種情況下,紅色角落會出現跳躍。 – cxyzs7

回答

0

一個正方形,對角線沿着角度PI/4(或3*PI/4)因爲你擁有它。使用矩形時,需要根據對角線的角度設置旋轉角度。我不知道你的座標到底是什麼系統,但你應該像atan2(centerY - cornerY, centerX - cornerX)(給予或採取+/-號)替換PI * 3/4