什麼是通過鼠標移動旋轉圖像後面的邏輯。我知道如何使用graphics2d.rotate進行旋轉,但使用鼠標作爲旋轉源時遇到了困難。下面是基本步驟:爪哇2D - 拖動鼠標以平滑旋轉圖像
- 獲取鼠標X(DX)和鼠標Y(DY)距錨固點(在這種情況下,這將是 我們要旋轉圖像的中心)。
- 在Math.arcTan2(dy,dx)中使用此點來獲取角度或旋轉。
- 使用Graphics2D.rotate方法的步驟中的值。
有了這個策略,每當我旋轉圖像,圖像開始旋轉從-pi旋轉90度後,它回到-pi。我不明白我在這裏做錯了什麼,它應該是非常基本的。
下面是代碼的一部分:
// mouse dragged events get sent here.
public void mouseDragged(MouseEvent e) {
int mx = e.getX(), my = e.getY();
// just checking if it falls within bounds of the image we
// want to rotate.
if(mx > speedKX || mx < speedKX + speedK.getWidth() || my > speedKY || my < speedKY + speedK.getHeight()/2)
{
theta += getTheta(e.getX(), e.getY());
}
}
是否可以看到一些代碼?看起來像一個三角函數問題... – 2010-02-04 08:45:48
是肯定,在這裏: //鼠標拖動事件被送到這裏。 public void mouseDragged(MouseEvent e) int mx = e.getX(),my = e.getY(); //只是檢查它是否落在我們想要旋轉的圖像的邊界內 。如果(mx> speedKX || mx speedKY || my
dave
2010-02-04 08:56:18
我不確定爲什麼,但以前的評論沒有格式好,你們可以閱讀嗎?如果不讓我知道謝謝。 – dave 2010-02-04 08:57:08