什么是通过鼠标移动旋转图像后面的逻辑。我知道如何使用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