我有一个在JavaFX中旋转的对象,在本例中是一个Rectangle。我想在我的第一个矩形的“顶部”前面制作第二个矩形,它基于鼠标点击显示。当第一个矩形没有旋转时,这种方法很好,但是一旦旋转,坐标就不对了。这是一些示例代码:
rec2.getTransforms().add(new Rotate(theta, rec1.getX() + 50, rec1.getY() - 72.5));
Theta是旋转角度。如何使第二个矩形始终显示在前面,而不是更高/更低的x / y位置?这可能需要数学......
更清楚:
If theta = 90, then(rec2's y position) is (rec1's y position - 10)//up by 10
(rec2's x position) is (rec1's x position)
If theta = 0, then(rec2's y position) is (rec1's y position)
(rec2's x position) is (rec1's x position + 10)//right by 10
and so forth for every angle 0 <=theta < 360.
然后,我想以恒定速度向前发射它。我想到了如何做到这一点,但它没有用(这是我的鼠标按钮点击处理程序):
double slope = Math.tan(theta);
rec2.setY(rec1.getX() * slope);
rec2.setX(rec1.getY() / slope);